当前位置:  开发笔记 > 编程语言 > 正文

更改绑定到DataGridView的DataTable中的列顺序不会反映在视图中

如何解决《更改绑定到DataGridView的DataTable中的列顺序不会反映在视图中》经验,为你挑选了1个好方法。

运行应用程序时,DataGridView绑定到a DataTable.稍后我会以DataTable编程方式添加更多列,并将其反映在基础数据中 - 即"正常"列应该是它们应该是的.然而,这并没有反映在DataGridView.而是将列附加到最初生成的集合上.

这个例子证明,

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    public DataTable data = new DataTable();

    private void button1_Click(object sender, EventArgs e)
    {

        this.dataGridView1.DataSource = data;
        for (int i = 0; i < 5; i++)
        {
            this.data.Columns.Add(i.ToString());
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {
        DataColumn foo = new DataColumn();
        this.data.Columns.Add(foo);
        foo.SetOrdinal(0);
    }

    private void button3_Click(object sender, EventArgs e)
    {
        foreach (DataColumn tmpCol in this.data.Columns)
        {
            Console.WriteLine("{0} : {1}", tmpCol.ColumnName, tmpCol.Ordinal);
        }
    }
}

按钮1生成列,按钮2添加一列,并将序号设置为0,因此它应该在网格中首先显示,按钮3显示列的序数,并显示它们应该如何在列中DataTable.



1> Marc Gravell..:

那就是如何DataGridView运作; 启用自动生成列后,将额外(未映射)列附加到末尾.您可以取消绑定并重新绑定以修复它; 将DataSource设置为null并返回到表:

this.dataGridView1.DataSource = null;
this.dataGridView1.Columns.Clear();
this.dataGridView1.DataSource = data;

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有