动态更改gridview's数据源

本文关键字:数据源 gridview 动态 | 更新日期: 2023-09-27 18:10:10

我有两个DataTable,我想用它们作为GridViewDataSoure。当用户单击button1时,我需要加载第一个表,用户单击button2时,应该加载第二个表。我目前的问题是,表没有相同的结构(一个有更多的列),当用户单击button1和点击button2后,第二个表加载正确的值,但它显示了table1的额外列。

解决这个问题最简单的方法是什么?

动态更改gridview's数据源

DataGridView.AutoGenerateColumns属性设置为true,而不是手动添加列。这将导致网格根据数据源创建列。

对Habib的答案进行一点扩展:

private void LoadTables()
{
    // Mock the tables data
    DataTable dt1 = new DataTable();
    DataTable dt2 = new DataTable();
    // Clear data from gridview
    GridView1.DataSource = null;
    GridView1.DataBind();
    // Load first table
    GridView1.DataSource = dt1;
    GridView1.DataBind();
    // Clear data from gridview
    GridView1.DataSource = null;
    GridView1.DataBind();
    // Load second table
    GridView1.DataSource = dt2;
    GridView1.DataBind();
}