我正在使用Infragistics UltraGrid
,其行为类似于常规datagrid
。
我的网格看起来像这样:
-------------------------
| Red | Blue | Green |
-------------------------
| null | null | null |
-------------------------
我正在构建DataTable
以将其指定为我的网格的DataSource
。我的DataTable
已
当我像这样分配我的数据源时:
myGrid.DataSource = myDataTable
或者像这样
myGrid.SetDataBinding(myTable, Nothing, True)
我得到这个网格:
------------------
| Red | Blue |
------------------
| 5 | 2 |
------------------
我什么时候应该这样:
---------------------------
| Red | Blue | Green |
---------------------------
| 5 | 2 | null |
----------------------------
是否有一些我缺少的属性允许我的表调整为非空列?
答案 0 :(得分:2)
当您将DataSource属性设置为DataTable时,您将通过Designer将架构信息集替换为已分配表的架构信息。
据我所知,没有办法保留那个缺失的列。
但是,您可以使用InitializeLayout事件
将缺少的列重新添加到网格中Private Sub myGrid_InitializeLayout(sender As object, _
e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs)
Dim b As UltraGridBand = e.Layout.Bands[0];
if Not b.Columns.Exists("RED") Then
Dim colRed As UltraGridColumn = b.Columns.Add("RED", "RED");
colRed.NullText = "Null"
colRed.Header.VisiblePosition = 0
End if
if Not b.Columns.Exists("BLU") Then
Dim colBlu As UltraGridColumn = b.Columns.Add("BLU", "BLU");
colBlu.NullText = "Null"
colBlu.Header.VisiblePosition = 1
End if
if Not b.Columns.Exists("GREEN") Then
Dim colGreen As UltraGridColumn = b.Columns.Add("GREEN", "GREEN");
colGreen.NullText = "Null"
colGreen.Header.VisiblePosition = 2
End if
End Sub