我有一个RadGrid编程生成的列,包括可变数量的列组。每个列组包含四列,其中两列显示,另外两列不显示。显示/隐藏ColumnGroups与混合隐藏和显示列
在RadGrid上方,我有一系列复选框,每个列组有一个复选框。目标是让用户根据他们希望看到的列来选中或取消选中框。目前,我在使用radgrid.Columns.FindByUniqueName("columnName").Display
更改复选框的选中值时设置了“显示属性”列。但是,列组本身不能以这种方式访问。实际上,当所有子列都消失时,列组将消失,但是当它们的子列显示时它们不会再出现,从而导致标题变为未对齐。
相关代码:
'Defining the grid
Dim radgrid As RadGrid
radgrid = New RadGrid()
Dim i as Integer = 0
For Each r As DataRow In subTable.Rows
Dim colGroup As GridColumnGroup = New GridGroupColumn()
radgrid.MasterTableView.ColumnGroups.Add(colGroup)
colGroup.HeaderText = r.Item("Name")
colGroup.Name = "colGroup" & i
Dim colID As GridBoundColumn = New GridBoundColumn()
radgrid.MasterTableView.Columns.Add(colID)
colID.ColumnGroupName = "colGroup" & i
colID.DataField = "id" & i
colID.HeaderText = "ID"
colID.UniqueName = "id" & i
colID.Display = False
Dim colScore As GridBoundColumn = New GridBoundColumn()
radgrid.MasterTableView.Columns.Add(colScore)
colScore.ColumnGroupName = "colGroup" & i
colScore.DataField = "score" & i
colScore.HeaderText = "Score"
colScore.UniqueName = "score" & i
i += 1
Next
'Checkbox CheckedChanged sub
If selectedButton.Checked = True Then
radgrid.Columns.FindByUniqueName("colScore" & selectedButton.Value.ToString()).Display = True
Else
radgrid.Columns.FindByUniqueName("colScore" & selectedButton.Value.ToString()).Display = False
End If
理想我想这样做radgrid.MasterTableView.ColumnGroups.FindGroupByName("colGroup" & selectedButton.Value.ToString()).Display = False
但没有Display
属性,用于和Visible
属性为只读。我也尝试在设置它们显示后重新设置列的ColumnGroupName
,但这也不起作用。
我猜我隐藏的列的事实是什么使这比它应该更复杂,但是有没有办法让这与隐藏的列工作?