我有一個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
,但這也不起作用。
我猜我隱藏的列的事實是什麼使這比它應該更復雜,但是有沒有辦法讓這與隱藏的列工作?