Datagridview没有显示任何内容,既没有列标题也没有数据。

3

我看到了很多问题并应用它们的结果,但什么也没有发生,我仍然看不到gridview中任何列标题/数据。

代码很简单,我确实得到了数据集中的数据,并在调试中看到了它,然后我只是使用datagridview进行分配。

datagridviewjobs.Datasource=tempJobsDataset;

但是什么也没有发生,它仍然是空的!


在设置了DataSource之后,您是否忘记了datagridviewjobs.databind();并确保AutoGenerateColumns设置为true。 - Romil Kumar Jain
1
我可能错了,但是我认为你不能直接将数据源设置为数据集,尝试将它设置为你感兴趣的数据表,即tempJobsDataset.Tables["MyTable"]。 - Kevin DiTraglia
2个回答

4

你不能将网格的数据源设置为整个DataSet,一个DataSet可能有数十个相关表,因此它不知道绑定哪个表。可以尝试以下方法:

datagridviewjobs.Datasource=tempJobsDataset.Tables("MyTable");

0

如果您在分配后填写它,则必须接受表格上的更改,以便获取GridView进行更新...

这里是一个完整的初始化,带有包装类。

    private void init(DataGridView datagridview, IHave_A_DataTable x)
    {
        datagridview.DataSource = x.GetDataTable();

        datagridview.Columns[datagridview.ColumnCount - 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

        datagridview.CurrentCell = datagridview[0, datagridview.RowCount - 1];

        x.Changed += new EventHandler((o, e) =>
        {
            IHave_A_DataTable sender = o as IHave_A_DataTable;
            sender.GetDataTable().AcceptChanges();
        });
    }

此外,数据集可以存储多个表格,但GridView只能接受一个数据表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接