【问题标题】:DevExpress Refreshing datagridview in vb.net not workingDevExpress 在 vb.net 中刷新 datagridview 不起作用
【发布时间】:2016-01-08 18:46:41
【问题描述】:

vb.net 中的 DevExpress 刷新 datagridview 不起作用。

我将一个表从我的数据库加载到 datagridview 并显示所有数据

问题 - 当我将另一个表从数据库加载到 datagridview 时,它不工作。只有第一个表会显示其数据,而第二个表不会向 datagridview 显示任何数据。

【问题讨论】:

  • 什么不起作用?我可以假设您的第二个表有不同的列(字段名称)。因此,您需要更正现有的列字段名称
  • 会发生什么?空行还是其他?
  • 您能否发布您的代码,以便我可以确切地看到哪些对象/控件正在运行?
  • 是的@Gosha_Fighten。我的下一个表中有不同的列(字段名称)。如何根据数据库中的新表更改列名?
  • 我有一个空行@MarkoJuvančič。并且列名不会改变。我仍然得到第一个表列标题。

标签: vb.net datagridview devexpress vb.net-2010


【解决方案1】:

为网格分配新数据源后,调用GridView.PopulateColumns方法重新生成列:

gridControl1.DataSource = secondDataTable;
GridView gv = (GridView)gridControl1.FocusedView;
gv.PopulateColumns(secondDataTable);

【讨论】:

  • 这段代码对我没有帮助。我仍然没有解决方案。这是我的代码:dgvMain.DataSource = clsVendors2.getVendorsStatus("2") ***我应该更改 datagridview 的列标题。
  • @VincentBryanF.Calija clsVendors2.getVendorsStatus("2") 返回什么对象?数据表、列表,还有什么?
  • 我要从数据库中获取的数据。
  • @VincentBryanF.Calija 什么类型的数据?数据表、列表等
  • @VincentBryanF.Calija 嗯,DataGridView 是一个控件。怎么可能是 Grid 的数据源?可能,您需要使用它的数据源?像 gridControl1.DataSource = dataGridView1.DataSource?
【解决方案2】:

这种行为有两个可能的原因:


  1. 第二个数据表中的列不同。

这种情况的症状是:您在网格中看到的空行数与第二个数据表中的行数一样多。

原因:Gridcontrol(准确地说是gridview)已经有Columns 属性并且没有找到匹配的对。

解决方案:加载第二个数据表后调用GridControl.PopulateColumns()。这将重新创建 Colums 属性。


  1. Gridview 没有意识到底层数据源已更改。

症状:您看到旧值。

解决方法:拨打GridView.Refresh()


据我从您的 cmets 中可以看出,您遇到了前一个问题。 所以,以这种方式做一些事情:

gridControl.DataSource = myFirstDataTable();

/* some other code*/ 

gridControl.DataSource = mySecondDataTable();
(gridControl.MainView as ColumnView).PopulateColumns()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-28
    • 2017-08-19
    • 2012-04-25
    • 1970-01-01
    • 2011-09-16
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多