I have grid where data is grouped and some of columns are not displayed. Column header context menu is enabled, so user can add columns to be shown in grid.
Main problem is when user hide/show columns, group header row does not change with columns. I have pictures for these situations.
Problem 1:
When user add columns to show, group header row does not grow to fill whole grid, pictures & explanations
1. Starting
situation at end of grid where 13 columns are displayed
2. User open
context menu from header
3. User
select one column to show (in this case Insp. point after AWW Date will be
added some point before captured picture area)
4. Column
has added to grid in its own place, but at the end of grid group header row is
missing one column style fill.
5. When
changing runtime code to group header row colspan from 13 to 14 (originally 13 columns
to show now 14) last column
Problem 2: When user remove columns to show, group header row does not get smaller with columns count, pictures & explanations
6. When user is hiding columns, now removed two columns from
that added one situation
7. Group
header row stay with 13 columns and “data” area columns get white area
Group header row will correct itself if whole grid is refresh/rebind but I would not like to do that because it is then doing whole page reload and "flash" the screen so is there any way to do that in client side code?
3 Answers, 1 is accepted
Hi Harri,
Can you please share the markup of the Grid so that I can check the structure? From the Screenshots, I see that scrolling is enabled and perhaps static headers as well.
Normally similar issues would appear when the Columns do not have a static width defined while using StaticHeaders with Scrolling. The fix for that is to assigned static width for the columns, see Misaligned Columns in RadGrid with Scrolling Enabled. However, I would need to see the complete declaration of the Grid to be able to tell you more.
Kind regards,
Attila Antal
Progress Telerik
Five days of Blazor, Angular, React, and Xamarin experts live-coding on twitch.tv/CodeItLive , special prizes and more, for FREE?! Register now for DevReach 2.0(20).
Hi
Here is grid aspx part:
001.
<
telerik:RadGrid
ID
=
"grITPS"
DataSourceID
=
"odsITP"
CssClass
=
"CssEditMode"
runat
=
"server"
Height
=
"92%"
002.
AllowAutomaticUpdates
=
"True"
EnableHeaderContextMenu
=
"True"
AutoGenerateColumns
=
"False"
AllowMultiRowEdit
=
"True"
003.
OnItemDataBound
=
"grITPS_ItemDataBound"
OnPreRender
=
"grITPS_PreRender"
004.
OnExcelMLExportStylesCreated
=
"grITPS_ExcelMLExportStylesCreated"
OnExcelMLWorkBookCreated
=
"grITPS_ExcelMLWorkBookCreated"
OnExcelMLExportRowCreated
=
"grITPS_ExcelMLExportRowCreated"
>
005.
<
GroupingSettings
CollapseAllTooltip
=
"Collapse all groups"
></
GroupingSettings
>
006.
<
ClientSettings
AllowGroupExpandCollapse
=
"true"
>
007.
<
Selecting
AllowRowSelect
=
"True"
EnableDragToSelectRows
=
"false"
/>
008.
<
Scrolling
AllowScroll
=
"True"
UseStaticHeaders
=
"True"
/>
009.
<
ClientEvents
OnCommand
=
"onCommand"
OnUserAction
=
"userAction"
/>
010.
</
ClientSettings
>
011.
<
ExportSettings
Excel-FileExtension
=
"xls"
Excel-Format
=
"ExcelML"
ExportOnlyData
=
"true"
>
012.
<
Pdf
PageWidth
=
""
>
013.
</
Pdf
>
014.
</
ExportSettings
>
015.
016.
<
MasterTableView
DataSourceID
=
"odsITP"
CommandItemDisplay
=
"Top"
EditMode
=
"Batch"
DataKeyNames
=
"ID"
TableLayout
=
"Fixed"
017.
AllowFilteringByColumn
=
"False"
AllowMultiColumnSorting
=
"False"
AllowNaturalSort
=
"False"
AllowSorting
=
"False"
EnableLinqGrouping
=
"False"
GroupLoadMode
=
"Client"
>
018.
<
BatchEditingSettings
EditType
=
"Row"
HighlightDeletedRows
=
"true"
/>
019.
<
CommandItemSettings
ShowExportToExcelButton
=
"True"
ExportToExcelText
=
"Vie Exceliin"
ShowExportToPdfButton
=
"False"
ShowRefreshButton
=
"True"
RefreshText
=
"Virkistä"
ShowSaveChangesButton
=
"true"
SaveChangesText
=
"Tallenna"
ShowCancelChangesButton
=
"true"
CancelChangesText
=
"Peruuta"
ShowAddNewRecordButton
=
"False"
/>
020.
<
ColumnGroups
>
021.
<
telerik:GridColumnGroup
HeaderText
=
"REC"
Name
=
"Record"
HeaderStyle-HorizontalAlign
=
"Center"
>
022.
</
telerik:GridColumnGroup
>
023.
<
telerik:GridColumnGroup
HeaderText
=
"S"
Name
=
"Supplier"
HeaderStyle-HorizontalAlign
=
"Center"
>
024.
</
telerik:GridColumnGroup
>
025.
<
telerik:GridColumnGroup
HeaderText
=
"3rd P"
Name
=
"ThirdParty"
HeaderStyle-HorizontalAlign
=
"Center"
>
026.
</
telerik:GridColumnGroup
>
027.
<
telerik:GridColumnGroup
HeaderText
=
"C"
Name
=
"Customer"
HeaderStyle-HorizontalAlign
=
"Center"
>
028.
</
telerik:GridColumnGroup
>
029.
<
telerik:GridColumnGroup
HeaderText
=
"LA"
Name
=
"LocalAuthority"
HeaderStyle-HorizontalAlign
=
"Center"
>
030.
</
telerik:GridColumnGroup
>
031.
</
ColumnGroups
>
032.
<
Columns
>
033.
<
telerik:GridBoundColumn
DataField
=
"ID"
HeaderText
=
"ID"
SortExpression
=
"ID"
UniqueName
=
"ID"
DataType
=
"System.Int32"
FilterControlAltText
=
"Filter ID column"
HeaderStyle-Width
=
"100px"
ItemStyle-Width
=
"100px"
Visible
=
"False"
ForceExtractValue
=
"Always"
></
telerik:GridBoundColumn
>
034.
<
telerik:GridBoundColumn
DataField
=
"PrintHeader"
HeaderText
=
"Print Header"
SortExpression
=
"PrintHeader"
UniqueName
=
"PrintHeader"
FilterControlAltText
=
"Filter PrintHeader column"
ReadOnly
=
"True"
HeaderStyle-Width
=
"200px"
ItemStyle-Width
=
"200px"
ForceExtractValue
=
"Always"
></
telerik:GridBoundColumn
>
035.
<
telerik:GridBoundColumn
DataField
=
"ApplicationHeader"
HeaderText
=
"Application Header"
SortExpression
=
"ApplicationHeader"
UniqueName
=
"ApplicationHeader"
FilterControlAltText
=
"Filter ApplicationHeader column"
ReadOnly
=
"True"
HeaderStyle-Width
=
"200px"
ItemStyle-Width
=
"200px"
ForceExtractValue
=
"Always"
></
telerik:GridBoundColumn
>
036.
<
telerik:GridBoundColumn
DataField
=
"Explanation"
HeaderText
=
"Explanation"
SortExpression
=
"Explanation"
UniqueName
=
"Explanation"
FilterControlAltText
=
"Filter Explanation column"
ReadOnly
=
"True"
HeaderStyle-Width
=
"200px"
ItemStyle-Width
=
"200px"
ForceExtractValue
=
"Always"
></
telerik:GridBoundColumn
>
037.
038.
<
telerik:GridTemplateColumn
UniqueName
=
"ApprovalInspectionPoint"
DataField
=
"ApprovalInspectionPoint"
HeaderText
=
"Insp. point"
FilterControlAltText
=
"Filter ApprovalInspectionPoint column"
SortExpression
=
"ApprovalInspectionPoint"
ColumnGroupName
=
"Record"
ForceExtractValue
=
"Always"
Display
=
"False"
>
039.
<
HeaderStyle
Width
=
"50px"
></
HeaderStyle
>
040.
<
ItemStyle
Width
=
"40px"
></
ItemStyle
>
041.
<
ItemTemplate
>
042.
<
telerik:RadLabel
ID
=
"lblApprovalInspectionPoint"
runat
=
"server"
Text='<%# Eval("ApprovalInspectionPoint") %>' Width="40px"></
telerik:RadLabel
>
043.
</
ItemTemplate
>
044.
<
EditItemTemplate
>
045.
<
telerik:RadComboBox
ID
=
"cmbApprovalInspectionPoint"
runat
=
"server"
DataSourceID
=
"odsInspectionPoint"
DataTextField
=
"COD"
DataValueField
=
"COD"
Width
=
"40px"
></
telerik:RadComboBox
>
046.
</
EditItemTemplate
>
047.
</
telerik:GridTemplateColumn
>
048.
<
telerik:GridTemplateColumn
DataField
=
"ApprovalCheck"
HeaderText
=
"Approved"
UniqueName
=
"ApprovalCheck"
HeaderStyle-Width
=
"80px"
ItemStyle-Width
=
"80px"
ColumnGroupName
=
"Record"
ForceExtractValue
=
"Always"
Display
=
"False"
>
049.
<
ItemTemplate
>
050.
<
asp:CheckBox
runat
=
"server"
ID
=
"chbApprovalCheck1"
Enabled
=
"true"
Checked='<%# Eval("ApprovalCheck") %>' onclick="checkBoxClick(this, event);" />
051.
</
ItemTemplate
>
052.
<
EditItemTemplate
>
053.
<
asp:CheckBox
runat
=
"server"
ID
=
"chbApprovalCheck2"
/>
054.
</
EditItemTemplate
>
055.
</
telerik:GridTemplateColumn
>
056.
<
telerik:GridTemplateColumn
UniqueName
=
"ApprovalUser"
DataField
=
"ApprovalUser"
HeaderText
=
"AWW Approver"
FilterControlAltText
=
"Filter ApprovalUser column"
SortExpression
=
"ApprovalUser"
ColumnGroupName
=
"Record"
ForceExtractValue
=
"Always"
Display
=
"False"
>
057.
<
HeaderStyle
Width
=
"100px"
></
HeaderStyle
>
058.
<
ItemTemplate
>
059.
<
telerik:RadLabel
ID
=
"lblApprovalUser"
runat
=
"server"
Text='<%# Eval("ApprovalUser").ToString() %>' Width="95px"></
telerik:RadLabel
>
060.
</
ItemTemplate
>
061.
<
EditItemTemplate
>
062.
<
telerik:RadComboBox
ID
=
"cmbApprovalUser"
runat
=
"server"
DataSourceID
=
"odsApprovalUser"
DataTextField
=
"Full_name"
DataValueField
=
"User_ID"
AllowCustomText
=
"True"
Filter
=
"Contains"
Width
=
"90px"
/>
063.
</
EditItemTemplate
>
064.
</
telerik:GridTemplateColumn
>
065.
<
telerik:GridTemplateColumn
UniqueName
=
"ApprovalDate"
DataField
=
"ApprovalDate"
HeaderText
=
"AWW Date"
FilterControlAltText
=
"Filter ApprovalDate column"
SortExpression
=
"ApprovalDate"
ColumnGroupName
=
"Record"
ForceExtractValue
=
"Always"
Display
=
"False"
>
066.
<
HeaderStyle
Width
=
"120px"
></
HeaderStyle
>
067.
<
ItemStyle
Width
=
"110px"
></
ItemStyle
>
068.
<
ItemTemplate
>
069.
<
telerik:RadLabel
ID
=
"lblApprovalDate"
runat
=
"server"
Text='<%# Eval("ApprovalDate","{0:d}") %>' Width="110px"></
telerik:RadLabel
>
070.
</
ItemTemplate
>
071.
<
EditItemTemplate
>
072.
<
telerik:RadDatePicker
ID
=
"rtbApprovalDate"
runat
=
"server"
Width
=
"110px"
/>
073.
</
EditItemTemplate
>
074.
</
telerik:GridTemplateColumn
>
075.
076.
077.
<
telerik:GridTemplateColumn
UniqueName
=
"SupplierInspectionPoint"
DataField
=
"SupplierInspectionPoint"
HeaderText
=
"Insp. point"
FilterControlAltText
=
"Filter SupplierInspectionPoint column"
SortExpression
=
"SupplierInspectionPoint"
ColumnGroupName
=
"Supplier"
ForceExtractValue
=
"Always"
Display
=
"False"
>
078.
<
HeaderStyle
Width
=
"50px"
></
HeaderStyle
>
079.
<
ItemStyle
Width
=
"40px"
></
ItemStyle
>
080.
<
ItemTemplate
>
081.
<
telerik:RadLabel
ID
=
"lblSupplierInspectionPoint"
runat
=
"server"
Text='<%# Eval("SupplierInspectionPoint") %>' Width="40px"></
telerik:RadLabel
>
082.
</
ItemTemplate
>
083.
<
EditItemTemplate
>
084.
<
telerik:RadComboBox
ID
=
"cmbSupplierInspectionPoint"
runat
=
"server"
DataSourceID
=
"odsInspectionPoint"
DataTextField
=
"COD"
DataValueField
=
"COD"
Width
=
"40px"
></
telerik:RadComboBox
>
085.
</
EditItemTemplate
>
086.
</
telerik:GridTemplateColumn
>
087.
<
telerik:GridTemplateColumn
DataField
=
"SupplierApprovalCheck"
HeaderText
=
"Approved"
UniqueName
=
"SupplierApprovalCheck"
HeaderStyle-Width
=
"80px"
ItemStyle-Width
=
"80px"
ColumnGroupName
=
"Supplier"
Display
=
"false"
ForceExtractValue
=
"Always"
>
088.
<
ItemTemplate
>
089.
<
asp:CheckBox
runat
=
"server"
ID
=
"chbSupplierApprovalCheck1"
Enabled
=
"true"
Checked='<%# Eval("SupplierApprovalCheck") %>' onclick="checkBoxClick(this, event);" />
090.
</
ItemTemplate
>
091.
<
EditItemTemplate
>
092.
<
asp:CheckBox
runat
=
"server"
ID
=
"chbSupplierApprovalCheck2"
/>
093.
</
EditItemTemplate
>
094.
</
telerik:GridTemplateColumn
>
095.
<
telerik:GridTemplateColumn
UniqueName
=
"SupplierUser"
DataField
=
"SupplierUser"
HeaderText
=
"Approver"
FilterControlAltText
=
"Filter SupplierUser column"
SortExpression
=
"SupplierUser"
ColumnGroupName
=
"Supplier"
ForceExtractValue
=
"Always"
Display
=
"False"
>
096.
<
HeaderStyle
Width
=
"100px"
></
HeaderStyle
>
097.
<
ItemStyle
Width
=
"90px"
></
ItemStyle
>
098.
<
ItemTemplate
>
099.
<
telerik:RadLabel
ID
=
"lblSupplierUser"
runat
=
"server"
Text='<%# Eval("SupplierUser").ToString() %>' Width="90px"></
telerik:RadLabel
>
100.
</
ItemTemplate
>
101.
<
EditItemTemplate
>
102.
<
telerik:RadComboBox
ID
=
"cmbSupplierUser"
runat
=
"server"
DataSourceID
=
"odsSupplierUser"
DataTextField
=
"Full_name"
DataValueField
=
"User_ID"
AllowCustomText
=
"True"
Filter
=
"Contains"
Width
=
"90px"
/>
103.
</
EditItemTemplate
>
104.
</
telerik:GridTemplateColumn
>
105.
<
telerik:GridTemplateColumn
UniqueName
=
"SupplierDate"
DataField
=
"SupplierDate"
HeaderText
=
"Date"
FilterControlAltText
=
"Filter SupplierDate column"
SortExpression
=
"SupplierDate"
ColumnGroupName
=
"Supplier"
ForceExtractValue
=
"Always"
Display
=
"False"
>
106.
<
HeaderStyle
Width
=
"120px"
></
HeaderStyle
>
107.
<
ItemStyle
Width
=
"110px"
></
ItemStyle
>
108.
<
ItemTemplate
>
109.
<
telerik:RadLabel
ID
=
"lblSupplierDate"
runat
=
"server"
Text='<%# Eval("SupplierDate","{0:d}") %>' Width="110px"></
telerik:RadLabel
>
110.
</
ItemTemplate
>
111.
<
EditItemTemplate
>
112.
<
telerik:RadDatePicker
ID
=
"rtbSupplierDate"
runat
=
"server"
Width
=
"110px"
/>
113.
</
EditItemTemplate
>
114.
</
telerik:GridTemplateColumn
>
115.
<
telerik:GridBoundColumn
DataField
=
"SupplierAWWUser"
HeaderText
=
"AWW Approver"
SortExpression
=
"SupplierAWWUser"
UniqueName
=
"SupplierAWWUser"
FilterControlAltText
=
"Filter SupplierAWWUser column"
ColumnGroupName
=
"Supplier"
Display
=
"false"
ReadOnly
=
"True"
HeaderStyle-Width
=
"100px"
ItemStyle-Width
=
"100px"
ForceExtractValue
=
"Always"
></
telerik:GridBoundColumn
>
116.
<
telerik:GridBoundColumn
DataField
=
"SupplierAWWDate"
HeaderText
=
"AWW Date"
SortExpression
=
"SupplierAWWDate"
UniqueName
=
"SupplierAWWDate"
FilterControlAltText
=
"Filter SupplierAWWDate column"
DataType
=
"System.DateTime"
ColumnGroupName
=
"Supplier"
Display
=
"false"
ReadOnly
=
"True"
HeaderStyle-Width
=
"100px"
ItemStyle-Width
=
"100px"
ForceExtractValue
=
"Always"
DataFormatString
=
"{0:d}"
></
telerik:GridBoundColumn
>
117.
118.
119.
<
telerik:GridTemplateColumn
UniqueName
=
"ThirdPartyInspectionPoint"
DataField
=
"ThirdPartyInspectionPoint"
HeaderText
=
"Insp. point"
FilterControlAltText
=
"Filter ThirdPartyInspectionPoint column"
SortExpression
=
"ThirdPartyInspectionPoint"
ColumnGroupName
=
"ThirdParty"
ForceExtractValue
=
"Always"
Display
=
"False"
>
120.
<
HeaderStyle
Width
=
"50px"
></
HeaderStyle
>
121.
<
ItemStyle
Width
=
"40px"
></
ItemStyle
>
122.
<
ItemTemplate
>
123.
<
telerik:RadLabel
ID
=
"lblThirdPartyInspectionPoint"
runat
=
"server"
Text='<%# Eval("ThirdPartyInspectionPoint") %>' Width="40px"></
telerik:RadLabel
>
124.
</
ItemTemplate
>
125.
<
EditItemTemplate
>
126.
<
telerik:RadComboBox
ID
=
"cmbThirdPartyInspectionPoint"
runat
=
"server"
DataSourceID
=
"odsInspectionPoint"
DataTextField
=
"COD"
DataValueField
=
"COD"
Width
=
"40px"
></
telerik:RadComboBox
>
127.
</
EditItemTemplate
>
128.
</
telerik:GridTemplateColumn
>
129.
<
telerik:GridTemplateColumn
DataField
=
"ThirdPartyApprovalCheck"
HeaderText
=
"Approved"
UniqueName
=
"ThirdPartyApprovalCheck"
HeaderStyle-Width
=
"80px"
ItemStyle-Width
=
"80px"
ColumnGroupName
=
"ThirdParty"
Display
=
"false"
ForceExtractValue
=
"Always"
>
130.
<
ItemTemplate
>
131.
<
asp:CheckBox
runat
=
"server"
ID
=
"chbThirdPartyApprovalCheck1"
Enabled
=
"true"
Checked='<%# Eval("ThirdPartyApprovalCheck") %>' onclick="checkBoxClick(this, event);" />
132.
</
ItemTemplate
>
133.
<
EditItemTemplate
>
134.
<
asp:CheckBox
runat
=
"server"
ID
=
"chbThirdPartyApprovalCheck2"
/>
135.
</
EditItemTemplate
>
136.
</
telerik:GridTemplateColumn
>
137.
<
telerik:GridTemplateColumn
UniqueName
=
"ThirdPartyUser"
DataField
=
"ThirdPartyUser"
HeaderText
=
"Approver"
FilterControlAltText
=
"Filter ThirdPartyUser column"
SortExpression
=
"ThirdPartyUser"
ColumnGroupName
=
"ThirdParty"
ForceExtractValue
=
"Always"
Display
=
"False"
>
138.
<
HeaderStyle
Width
=
"100px"
></
HeaderStyle
>
139.
<
ItemStyle
Width
=
"90px"
></
ItemStyle
>
140.
<
ItemTemplate
>
141.
<
telerik:RadLabel
ID
=
"lblThirdPartyUser"
runat
=
"server"
Text='<%# Eval("ThirdPartyUser").ToString() %>' Width="90px"></
telerik:RadLabel
>
142.
</
ItemTemplate
>
143.
<
EditItemTemplate
>
144.
<
telerik:RadComboBox
ID
=
"cmbThirdPartyUser"
runat
=
"server"
DataSourceID
=
"odsThirdPartyUser"
DataTextField
=
"Full_name"
DataValueField
=
"User_ID"
AllowCustomText
=
"True"
Filter
=
"Contains"
Width
=
"90px"
/>
145.
</
EditItemTemplate
>
146.
</
telerik:GridTemplateColumn
>
147.
<
telerik:GridTemplateColumn
UniqueName
=
"ThirdPartyDate"
DataField
=
"ThirdPartyDate"
HeaderText
=
"Date"
FilterControlAltText
=
"Filter ThirdPartyDate column"
SortExpression
=
"ThirdPartyDate"
ColumnGroupName
=
"ThirdParty"
ForceExtractValue
=
"Always"
Display
=
"False"
>
148.
<
HeaderStyle
Width
=
"120px"
></
HeaderStyle
>
149.
<
ItemStyle
Width
=
"110px"
></
ItemStyle
>
150.
<
ItemTemplate
>
151.
<
telerik:RadLabel
ID
=
"lblThirdPartyDate"
runat
=
"server"
Text='<%# Eval("ThirdPartyDate","{0:d}") %>' Width="110px"></
telerik:RadLabel
>
152.
</
ItemTemplate
>
153.
<
EditItemTemplate
>
154.
<
telerik:RadDatePicker
ID
=
"rtbThirdPartyDate"
runat
=
"server"
Width
=
"110px"
/>
155.
</
EditItemTemplate
>
156.
</
telerik:GridTemplateColumn
>
157.
<
telerik:GridBoundColumn
DataField
=
"ThirdPartyAWWUser"
HeaderText
=
"AWW Approver"
SortExpression
=
"ThirdPartyAWWUser"
UniqueName
=
"ThirdPartyAWWUser"
FilterControlAltText
=
"Filter ThirdPartyAWWUser column"
ColumnGroupName
=
"ThirdParty"
Display
=
"false"
ReadOnly
=
"True"
HeaderStyle-Width
=
"100px"
ItemStyle-Width
=
"100px"
ForceExtractValue
=
"Always"
></
telerik:GridBoundColumn
>
158.
<
telerik:GridBoundColumn
DataField
=
"ThirdPartyAWWDate"
HeaderText
=
"AWW Date"
SortExpression
=
"ThirdPartyAWWDate"
UniqueName
=
"ThirdPartyAWWDate"
FilterControlAltText
=
"Filter ThirdPartyAWWDate column"
DataType
=
"System.DateTime"
ColumnGroupName
=
"ThirdParty"
Display
=
"false"
ReadOnly
=
"True"
HeaderStyle-Width
=
"100px"
ItemStyle-Width
=
"100px"
ForceExtractValue
=
"Always"
DataFormatString
=
"{0:d}"
></
telerik:GridBoundColumn
>
159.
160.
161.
<
telerik:GridTemplateColumn
UniqueName
=
"CustomerInspectionPoint"
DataField
=
"CustomerInspectionPoint"
HeaderText
=
"Insp. point"
FilterControlAltText
=
"Filter CustomerInspectionPoint column"
SortExpression
=
"CustomerInspectionPoint"
ColumnGroupName
=
"Customer"
ForceExtractValue
=
"Always"
Display
=
"False"
>
162.
<
HeaderStyle
Width
=
"50px"
></
HeaderStyle
>
163.
<
ItemStyle
Width
=
"40px"
></
ItemStyle
>
164.
<
ItemTemplate
>
165.
<
telerik:RadLabel
ID
=
"lblCustomerInspectionPoint"
runat
=
"server"
Text='<%# Eval("CustomerInspectionPoint") %>' Width="40px"></
telerik:RadLabel
>
166.
</
ItemTemplate
>
167.
<
EditItemTemplate
>
168.
<
telerik:RadComboBox
ID
=
"cmbCustomerInspectionPoint"
runat
=
"server"
DataSourceID
=
"odsInspectionPoint"
DataTextField
=
"COD"
DataValueField
=
"COD"
Width
=
"40px"
></
telerik:RadComboBox
>
169.
</
EditItemTemplate
>
170.
</
telerik:GridTemplateColumn
>
171.
<
telerik:GridTemplateColumn
DataField
=
"CustomerApprovalCheck"
HeaderText
=
"Approved"
UniqueName
=
"CustomerApprovalCheck"
HeaderStyle-Width
=
"80px"
ItemStyle-Width
=
"80px"
ColumnGroupName
=
"Customer"
Display
=
"false"
ForceExtractValue
=
"Always"
>
172.
<
ItemTemplate
>
173.
<
asp:CheckBox
runat
=
"server"
ID
=
"chbCustomerApprovalCheck1"
Enabled
=
"true"
Checked='<%# Eval("CustomerApprovalCheck") %>' onclick="checkBoxClick(this, event);" />
174.
</
ItemTemplate
>
175.
<
EditItemTemplate
>
176.
<
asp:CheckBox
runat
=
"server"
ID
=
"chbCustomerApprovalCheck2"
/>
177.
</
EditItemTemplate
>
178.
</
telerik:GridTemplateColumn
>
179.
<
telerik:GridTemplateColumn
UniqueName
=
"CustomerUser"
DataField
=
"CustomerUser"
HeaderText
=
"Approver"
FilterControlAltText
=
"Filter CustomerUser column"
SortExpression
=
"CustomerUser"
ColumnGroupName
=
"Customer"
ForceExtractValue
=
"Always"
Display
=
"False"
>
180.
<
HeaderStyle
Width
=
"100px"
></
HeaderStyle
>
181.
<
ItemStyle
Width
=
"90px"
></
ItemStyle
>
182.
<
ItemTemplate
>
183.
<
telerik:RadLabel
ID
=
"lblCustomerUser"
runat
=
"server"
Text='<%# Eval("CustomerUser").ToString() %>' Width="90px"></
telerik:RadLabel
>
184.
</
ItemTemplate
>
185.
<
EditItemTemplate
>
186.
<
telerik:RadComboBox
ID
=
"cmbCustomerUser"
runat
=
"server"
DataSourceID
=
"odsCustomerUser"
DataTextField
=
"Full_name"
DataValueField
=
"User_ID"
AllowCustomText
=
"True"
Filter
=
"Contains"
Width
=
"90px"
/>
187.
</
EditItemTemplate
>
188.
</
telerik:GridTemplateColumn
>
189.
<
telerik:GridTemplateColumn
UniqueName
=
"CustomerDate"
DataField
=
"CustomerDate"
HeaderText
=
"Date"
FilterControlAltText
=
"Filter CustomerDate column"
SortExpression
=
"CustomerDate"
ColumnGroupName
=
"Customer"
ForceExtractValue
=
"Always"
Display
=
"False"
>
190.
<
HeaderStyle
Width
=
"120px"
></
HeaderStyle
>
191.
<
ItemStyle
Width
=
"110px"
></
ItemStyle
>
192.
<
ItemTemplate
>
193.
<
telerik:RadLabel
ID
=
"lblCustomerDate"
runat
=
"server"
Text='<%# Eval("CustomerDate","{0:d}") %>' Width="110px"></
telerik:RadLabel
>
194.
</
ItemTemplate
>
195.
<
EditItemTemplate
>
196.
<
telerik:RadDatePicker
ID
=
"rtbCustomerDate"
runat
=
"server"
Width
=
"110px"
/>
197.
</
EditItemTemplate
>
198.
</
telerik:GridTemplateColumn
>
199.
<
telerik:GridBoundColumn
DataField
=
"CustomerAWWUser"
HeaderText
=
"AWW Approver"
SortExpression
=
"CustomerAWWUser"
UniqueName
=
"CustomerAWWUser"
FilterControlAltText
=
"Filter CustomerAWWUser column"
ColumnGroupName
=
"Customer"
Display
=
"false"
ReadOnly
=
"True"
HeaderStyle-Width
=
"100px"
ItemStyle-Width
=
"100px"
ForceExtractValue
=
"Always"
></
telerik:GridBoundColumn
>
200.
<
telerik:GridBoundColumn
DataField
=
"CustomerAWWDate"
HeaderText
=
"AWW Date"
SortExpression
=
"CustomerAWWDate"
UniqueName
=
"CustomerAWWDate"
FilterControlAltText
=
"Filter CustomerAWWDate column"
DataType
=
"System.DateTime"
ColumnGroupName
=
"Customer"
Display
=
"false"
ReadOnly
=
"True"
HeaderStyle-Width
=
"100px"
ItemStyle-Width
=
"100px"
ForceExtractValue
=
"Always"
DataFormatString
=
"{0:d}"
></
telerik:GridBoundColumn
>
201.
202.
203.
<
telerik:GridTemplateColumn
UniqueName
=
"LocalAuthorityInspectionPoint"
DataField
=
"LocalAuthorityInspectionPoint"
HeaderText
=
"Insp. point"
FilterControlAltText
=
"Filter LocalAuthorityInspectionPoint column"
SortExpression
=
"LocalAuthorityInspectionPoint"
ColumnGroupName
=
"LocalAuthority"
ForceExtractValue
=
"Always"
Display
=
"False"
>
204.
<
HeaderStyle
Width
=
"50px"
></
HeaderStyle
>
205.
<
ItemStyle
Width
=
"40px"
></
ItemStyle
>
206.
<
ItemTemplate
>
207.
<
telerik:RadLabel
ID
=
"lblLocalAuthorityInspectionPoint"
runat
=
"server"
Text='<%# Eval("LocalAuthorityInspectionPoint") %>' Width="40px"></
telerik:RadLabel
>
208.
</
ItemTemplate
>
209.
<
EditItemTemplate
>
210.
<
telerik:RadComboBox
ID
=
"cmbLocalAuthorityInspectionPoint"
runat
=
"server"
DataSourceID
=
"odsInspectionPoint"
DataTextField
=
"COD"
DataValueField
=
"COD"
Width
=
"40px"
></
telerik:RadComboBox
>
211.
</
EditItemTemplate
>
212.
</
telerik:GridTemplateColumn
>
213.
<
telerik:GridTemplateColumn
DataField
=
"LocalAuthorityApprovalCheck"
HeaderText
=
"Approved"
UniqueName
=
"LocalAuthorityApprovalCheck"
HeaderStyle-Width
=
"80px"
ItemStyle-Width
=
"80px"
ColumnGroupName
=
"LocalAuthority"
Display
=
"false"
ForceExtractValue
=
"Always"
>
214.
<
ItemTemplate
>
215.
<
asp:CheckBox
runat
=
"server"
ID
=
"chbLocalAuthorityApprovalCheck1"
Enabled
=
"true"
Checked='<%# Eval("LocalAuthorityApprovalCheck") %>' onclick="checkBoxClick(this, event);" />
216.
</
ItemTemplate
>
217.
<
EditItemTemplate
>
218.
<
asp:CheckBox
runat
=
"server"
ID
=
"chbLocalAuthorityApprovalCheck2"
/>
219.
</
EditItemTemplate
>
220.
</
telerik:GridTemplateColumn
>
221.
<
telerik:GridTemplateColumn
UniqueName
=
"LocalAuthorityUser"
DataField
=
"LocalAuthorityUser"
HeaderText
=
"Approver"
FilterControlAltText
=
"Filter LocalAuthorityUser column"
SortExpression
=
"LocalAuthorityUser"
ColumnGroupName
=
"LocalAuthority"
ForceExtractValue
=
"Always"
Display
=
"False"
>
222.
<
HeaderStyle
Width
=
"100px"
></
HeaderStyle
>
223.
<
ItemStyle
Width
=
"90px"
></
ItemStyle
>
224.
<
ItemTemplate
>
225.
<
telerik:RadLabel
ID
=
"lblLocalAuthorityUser"
runat
=
"server"
Text='<%# Eval("LocalAuthorityUser").ToString() %>' Width="90px"></
telerik:RadLabel
>
226.
</
ItemTemplate
>
227.
<
EditItemTemplate
>
228.
<
telerik:RadComboBox
ID
=
"cmbLocalAuthorityUser"
runat
=
"server"
DataSourceID
=
"odsLocalAuthorityUser"
DataTextField
=
"Full_name"
DataValueField
=
"User_ID"
AllowCustomText
=
"True"
Filter
=
"Contains"
Width
=
"90px"
/>
229.
</
EditItemTemplate
>
230.
</
telerik:GridTemplateColumn
>
231.
<
telerik:GridTemplateColumn
UniqueName
=
"LocalAuthorityDate"
DataField
=
"LocalAuthorityDate"
HeaderText
=
"Date"
FilterControlAltText
=
"Filter LocalAuthorityDate column"
SortExpression
=
"LocalAuthorityDate"
ColumnGroupName
=
"LocalAuthority"
ForceExtractValue
=
"Always"
Display
=
"False"
>
232.
<
HeaderStyle
Width
=
"120px"
></
HeaderStyle
>
233.
<
ItemStyle
Width
=
"110px"
></
ItemStyle
>
234.
<
ItemTemplate
>
235.
<
telerik:RadLabel
ID
=
"lblLocalAuthorityDate"
runat
=
"server"
Text='<%# Eval("LocalAuthorityDate","{0:d}") %>' Width="110px"></
telerik:RadLabel
>
236.
</
ItemTemplate
>
237.
<
EditItemTemplate
>
238.
<
telerik:RadDatePicker
ID
=
"rtbLocalAuthorityDate"
runat
=
"server"
Width
=
"110px"
/>
239.
</
EditItemTemplate
>
240.
</
telerik:GridTemplateColumn
>
241.
<
telerik:GridBoundColumn
DataField
=
"LocalAuthorityAWWUser"
HeaderText
=
"AWW Approver"
SortExpression
=
"LocalAuthorityAWWUser"
UniqueName
=
"LocalAuthorityAWWUser"
FilterControlAltText
=
"Filter LocalAuthorityAWWUser column"
ColumnGroupName
=
"LocalAuthority"
Display
=
"false"
ReadOnly
=
"True"
HeaderStyle-Width
=
"100px"
ItemStyle-Width
=
"100px"
ForceExtractValue
=
"Always"
></
telerik:GridBoundColumn
>
242.
<
telerik:GridBoundColumn
DataField
=
"LocalAuthorityAWWDate"
HeaderText
=
"AWW Date"
SortExpression
=
"LocalAuthorityAWWDate"
UniqueName
=
"LocalAuthorityAWWDate"
FilterControlAltText
=
"Filter LocalAuthorityAWWDate column"
DataType
=
"System.DateTime"
ColumnGroupName
=
"LocalAuthority"
Display
=
"false"
ReadOnly
=
"True"
HeaderStyle-Width
=
"100px"
ItemStyle-Width
=
"100px"
ForceExtractValue
=
"Always"
DataFormatString
=
"{0:d}"
></
telerik:GridBoundColumn
>
243.
244.
</
Columns
>
245.
246.
<
EditFormSettings
>
247.
<
EditColumn
CancelImageUrl
=
"images/BtnCancel.png"
InsertImageUrl
=
"images/BtnSave.png"
UpdateImageUrl
=
"images/BtnSave.png"
ButtonType
=
"ImageButton"
HeaderStyle-Width
=
"20"
></
EditColumn
>
248.
</
EditFormSettings
>
249.
<
GroupByExpressions
>
250.
<
telerik:GridGroupByExpression
>
251.
<
SelectFields
>
252.
<
telerik:GridGroupByField
FieldAlias
=
"SubjectType"
FieldName
=
"SubjectType"
FormatString
=
""
HeaderText
=
" "
HeaderValueSeparator
=
" "
/>
253.
</
SelectFields
>
254.
<
GroupByFields
>
255.
<
telerik:GridGroupByField
FieldAlias
=
"SubjectTypeCod"
FieldName
=
"SubjectTypeCod"
FormatString
=
""
HeaderText
=
" "
HeaderValueSeparator
=
" "
/>
256.
</
GroupByFields
>
257.
</
telerik:GridGroupByExpression
>
258.
</
GroupByExpressions
>
259.
</
MasterTableView
>
260.
261.
</
telerik:RadGrid
>
And here is code behind to "master" user columns visibility settings:
01.
if
(loggedUser.HasRole(
"ITP_ApproverAWW"
))
02.
{
03.
#region AWW user
04.
(grITPS.Columns.FindByUniqueName(
"SupplierApprovalCheck"
)
as
GridTemplateColumn).ReadOnly =
true
;
05.
(grITPS.Columns.FindByUniqueName(
"ThirdPartyApprovalCheck"
)
as
GridTemplateColumn).ReadOnly =
true
;
06.
(grITPS.Columns.FindByUniqueName(
"CustomerApprovalCheck"
)
as
GridTemplateColumn).ReadOnly =
true
;
07.
(grITPS.Columns.FindByUniqueName(
"LocalAuthorityApprovalCheck"
)
as
GridTemplateColumn).ReadOnly =
true
;
08.
#endregion
09.
10.
#region set Record (AWW) approval from user available change (can see when select columns)
11.
(grITPS.Columns.FindByUniqueName(
"ApprovalInspectionPoint"
)
as
GridTemplateColumn).Display =
true
;
12.
(grITPS.Columns.FindByUniqueName(
"ApprovalCheck"
)
as
GridTemplateColumn).Display =
true
;
13.
(grITPS.Columns.FindByUniqueName(
"ApprovalDate"
)
as
GridTemplateColumn).Display =
true
;
14.
(grITPS.Columns.FindByUniqueName(
"ApprovalUser"
)
as
GridTemplateColumn).Display =
true
;
15.
#endregion
16.
17.
#region set Supplier approval from user available change (can see when select columns)
18.
(grITPS.Columns.FindByUniqueName(
"SupplierInspectionPoint"
)
as
GridTemplateColumn).Display =
false
;
19.
(grITPS.Columns.FindByUniqueName(
"SupplierApprovalCheck"
)
as
GridTemplateColumn).Display =
false
;
20.
(grITPS.Columns.FindByUniqueName(
"SupplierDate"
)
as
GridTemplateColumn).Display =
false
;
21.
(grITPS.Columns.FindByUniqueName(
"SupplierUser"
)
as
GridTemplateColumn).Display =
false
;
22.
grITPS.Columns.FindByUniqueName(
"SupplierAWWDate"
).Display =
false
;
23.
grITPS.Columns.FindByUniqueName(
"SupplierAWWUser"
).Display =
false
;
24.
#endregion
25.
26.
#region set ThirdParty approval from user available change (can see when select columns)
27.
(grITPS.Columns.FindByUniqueName(
"ThirdPartyInspectionPoint"
)
as
GridTemplateColumn).Display =
true
;
28.
(grITPS.Columns.FindByUniqueName(
"ThirdPartyApprovalCheck"
)
as
GridTemplateColumn).Display =
false
;
29.
(grITPS.Columns.FindByUniqueName(
"ThirdPartyDate"
)
as
GridTemplateColumn).Display =
true
;
30.
(grITPS.Columns.FindByUniqueName(
"ThirdPartyUser"
)
as
GridTemplateColumn).Display =
true
;
31.
grITPS.Columns.FindByUniqueName(
"ThirdPartyAWWDate"
).Display =
false
;
32.
grITPS.Columns.FindByUniqueName(
"ThirdPartyAWWUser"
).Display =
false
;
33.
#endregion
34.
35.
#region set Customer approval from user available change (can see when select columns)
36.
(grITPS.Columns.FindByUniqueName(
"CustomerInspectionPoint"
)
as
GridTemplateColumn).Display =
false
;
37.
(grITPS.Columns.FindByUniqueName(
"CustomerApprovalCheck"
)
as
GridTemplateColumn).Display =
false
;
38.
(grITPS.Columns.FindByUniqueName(
"CustomerDate"
)
as
GridTemplateColumn).Display =
false
;
39.
(grITPS.Columns.FindByUniqueName(
"CustomerUser"
)
as
GridTemplateColumn).Display =
false
;
40.
grITPS.Columns.FindByUniqueName(
"CustomerAWWDate"
).Display =
false
;
41.
grITPS.Columns.FindByUniqueName(
"CustomerAWWUser"
).Display =
false
;
42.
#endregion
43.
44.
#region set LocalAuthority approval from user available change (can see when select columns)
45.
(grITPS.Columns.FindByUniqueName(
"LocalAuthorityInspectionPoint"
)
as
GridTemplateColumn).Display =
false
;
46.
(grITPS.Columns.FindByUniqueName(
"LocalAuthorityApprovalCheck"
)
as
GridTemplateColumn).Display =
false
;
47.
(grITPS.Columns.FindByUniqueName(
"LocalAuthorityDate"
)
as
GridTemplateColumn).Display =
false
;
48.
(grITPS.Columns.FindByUniqueName(
"LocalAuthorityUser"
)
as
GridTemplateColumn).Display =
false
;
49.
grITPS.Columns.FindByUniqueName(
"LocalAuthorityAWWDate"
).Display =
false
;
50.
grITPS.Columns.FindByUniqueName(
"LocalAuthorityAWWUser"
).Display =
false
;
51.
#endregion
52.
}
And here is for one restricted user columns visibility settings:
1.
if
(loggedUser.HasRole(
"ITP_ApproverSupplier"
))
2.
{
3.
(grITPS.Columns.FindByUniqueName(
"SupplierInspectionPoint"
)
as
GridTemplateColumn).Display =
true
;
4.
(grITPS.Columns.FindByUniqueName(
"SupplierApprovalCheck"
)
as
GridTemplateColumn).Display =
true
;
5.
(grITPS.Columns.FindByUniqueName(
"SupplierInspectionPoint"
)
as
GridTemplateColumn).ReadOnly =
true
;
6.
(grITPS.Columns.FindByUniqueName(
"SupplierApprovalCheck"
)
as
GridTemplateColumn).ReadOnly =
false
;
7.
}
Hope you understand what is happening.
Regard
Harri
Hi Harri,
I've re-used the code snippets you shared to replicate the problem, but I am not seeing the same issue. I followed your instructions and the columns seem to be all organized without any glitch. Probably I am missing something.
Check out the attached sample project and see what I have done. In case something is different, change it to replicate the problem and send it back so I could take a look.
Regards,
Attila Antal
Progress Telerik
Five days of Blazor, Angular, React, and Xamarin experts live-coding on twitch.tv/CodeItLive , special prizes and more, for FREE?! Register now for DevReach 2.0(20).