【问题标题】:Grid not displaying its rows网格不显示其行
【发布时间】:2013-06-07 13:26:40
【问题描述】:

我正在使用Infragistics.Win.UltraWinGrid.UltraGrid 版本Infragistics4.Win.UltraWinGrid.v13.1 我在让这段代码正常运行时遇到了一些问题。

// creating the dataSource object which is a wrapper for a System.Data.DataTable
dataSource.FillTheValues();
Infragistics.Win.UltraWinGrid.UltraGrid grid = new Infragistics.Win.UltraWinGrid.UltraGrid();

grid.DataSource = dataSource.Table; //dataSource.Table is a System.Data.DataTable
grid.DataBind();
grid.PerformLayout();

此时发生了一件非常奇怪的事情(在调试模式下检查):

  • dataSource.Table.Rows.Count 是 1203
  • grid.Rows.Count 是 1203

但在我的表单中的实际网格中没有显示任何内容,并且网格看起来完全是空的。

网格中的列与dataSource.Table 中的列完美匹配,因此绑定很好。

另外,我尝试调用grid.Updategrid.Refreshgrid.Invalidate,但没有结果。

你有什么想法吗?

【问题讨论】:

  • 在 WinForms 中你不需要 DataBind 和 PerformLayout
  • 顺便问一下,您是否将手动创建的网格实例添加到表单控件集合中?
  • @Lorenzo 没有足够的信息来确定可能是什么原因。 Steve 提出了一个很好的观点,以确保将网格添加到表单中,并且您应该验证它是您看到的实例。
  • 通过将网格从工具箱窗口框架拖动到组件中,将网格添加到设计类型的表单控件中。我已经交叉检查,网格正确地出现在 Designer 自动生成的 C# 代码中。 @Steve:感谢有关 DataBind 和 PerformLayout 的信息,我已将它们从代码中删除。

标签: winforms grid infragistics


【解决方案1】:

在上面的代码中,您声明并初始化 UltraGrid 的一个新实例,然后用数据源填充这个新实例。此网格实例与您使用设计器创建并放置在表单表面上的网格不同。它只是一个充满数据但从未显示的对象。

您可以使用对使用表单设计器设计的网格的变量引用来解决此问题(如果您尚未更改设计器中的名称属性,则应将其命名为ultraGrid1

 dataSource.FillTheValues();
 ultraGrid1.DataSource = dataSource.Table; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    相关资源
    最近更新 更多