【问题标题】:Adding columns programmatically to DataGridView takes too long以编程方式将列添加到 DataGridView 需要很长时间
【发布时间】:2020-02-25 18:34:50
【问题描述】:

我正在使用 C#,我正在以编程方式将列添加到 DataGridView。列数介于 30-50 列之间(列数是因为我想垂直显示数据)现在我在页面上有一个 DataGridView 但到时候它会达到 5 个表,并且所有进程在页面加载中,但加载页面需要很长时间,比如 3 分钟只加载一个网格,我正在添加这样的列:

 for(int i=0 ; i <dt.rows.count ; i++)
 {
    dgv.Columns.Add("c"+i.tostring(),"c"+i.tostring());
    dgv.Rows[0].Cells[i].Value=i+1;
    dgv.Rows[1].Cells[i].Value=dt.Rows[i].ItemArray[2].tostring();
    dgv.Rows[2].Cells[i].Value=somevalue-othervalue;
 }

dt 是我的datatable 名称,值来自datatable,有些需要太长时间,但数据并不多,过程也不复杂,所以我能在这里做什么? 我应该在后台运行该进程并使用另一个datatable 填充gridview 吗?我已经这样做了,但我没有看到任何变化。

【问题讨论】:

  • 为什么不将列添加到DataTable 并将DataGridView 绑定到DataTable
  • 我需要在页面加载后添加越来越多的列,我在DataTable 中有一些列在Gridview 中没有使用,我应该再创建一个DataTable 并设计为我喜欢?并且将网格视图与第二个数据表绑定?
  • 所以,在页面加载后添加越来越多的列,然后将数据绑定到新表。
  • 我试过了,速度更快!在此先感谢,我还有一个问题,为什么绑定比生成列要快?
  • 我不知道,但这个(和大多数其他)控件的整个想法是显示它们绑定的数据。这就是他们优化的用例。

标签: c# datagridview datatable


【解决方案1】:

提前将额外的列添加到DataTable。有数据后填写。

然后将DataTable 绑定到DataGridView

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多