Hi,
For most of the grids in our project, there are more than 35 columns,to minimize the time taken to load the grid, we are trying to use the gridpersister to save the settings for individual user, so that the user can customize the number of columns they want to see everytime.
Saving the grid setting data works fine. While loading the settings data in grid, the column header and data gets wrapped or clipped and sometimes some of the columns which is supposed to be visible are hidden and sometimes we cannot scroll to the end of grid and some columns at the end are clipped.
Below is the grid definition:
<
telerik:RadGrid
ID
=
"RadReportGrid0"
runat
=
"server"
AllowPaging
=
"True"
AutoSize
=
"true"
AllowSorting
=
"True"
DataSourceID
=
"SqlDataSourceSearch"
GridLines
=
"None"
Skin
=
"Vista"
AutoGenerateColumns
=
"False"
Width
=
"99%"
onitemcreated
=
"RadReportGrid0_ItemCreated"
EnableHeaderContextMenu
=
"True"
PageSize
=
"20"
onitemdatabound
=
"RadReportGrid0_ItemDataBound"
OnPageSizeChanged
=
"RadReportGrid0_PageSizeChanged"
oninit
=
"RadReportGrid0_Init"
AllowFilteringByColumn
=
"false"
GroupingEnabled
=
"false"
>
<
headercontextmenu
skin
=
"Vista"
>
<
collapseanimation
duration
=
"200"
type
=
"OutQuint"
>
</
collapseanimation
>
</
headercontextmenu
>
<
selecteditemstyle
CssClass
=
"SelectedItem"
></
selecteditemstyle
>
<
PagerStyle
AlwaysVisible
=
"True"
Position
=
"TopAndBottom"
NextPageText
=
"Next"
PrevPageText
=
"Prev"
Mode
=
"NextPrevAndNumeric"
/>
<
mastertableview
AutoGenerateColumns
=
"False"
datakeynames
=
"key1,key14"
ClientDataKeyNames
=
"Key1,Key14"
datasourceid
=
"SqlDataSourceSearch"
AllowMultiColumnSorting
=
"True"
>
<
norecordstemplate
>
No record to display
</
norecordstemplate
>
<
HeaderStyle
HorizontalAlign
=
"Left"
VerticalAlign
=
"Bottom"
Wrap
=
"False"
/>
<
ItemStyle
Wrap
=
"False"
VerticalAlign
=
"Top"
HorizontalAlign
=
"Left"
/>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"Column1"
DataType
=
"System.DateTime"
FilterControlWidth
=
"100px"
FilterListOptions
=
"VaryByDataType"
HeaderText
=
"Upload Date"
ReadOnly
=
"True"
SortExpression
=
"Column1"
UniqueName
=
"Column1"
Groupable
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column2"
DataType
=
"System.Decimal"
HeaderText
=
"Column2"
SortExpression
=
"Column2"
FilterControlWidth
=
"50px"
UniqueName
=
"Column2"
Groupable
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
AllowFiltering
=
"false"
Groupable
=
"false"
>
<
ItemTemplate
>
<
asp:ImageButton
ID
=
"imgActionButton"
runat
=
"server"
src
=
"_assets/img/AddRecord2.gif"
></
asp:ImageButton
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column3"
HeaderText
=
"Column3"
FilterControlWidth
=
"50px"
ReadOnly
=
"True"
SortExpression
=
"Column3"
UniqueName
=
"Column3"
Groupable
=
"False"
DataType
=
"System.String"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column4"
HeaderText
=
"Column4"
FilterControlWidth
=
"50px"
SortExpression
=
"Column4"
UniqueName
=
"Column4"
Groupable
=
"False"
DataType
=
"System.String"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column5"
HeaderText
=
"Column5"
SortExpression
=
"Column5"
FilterControlWidth
=
"50px"
UniqueName
=
"Column5"
Groupable
=
"False"
DataType
=
"System.String"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column6"
HeaderText
=
"Column6"
FilterControlWidth
=
"50px"
ReadOnly
=
"True"
SortExpression
=
"Column6"
UniqueName
=
"Column6"
Groupable
=
"False"
DataType
=
"System.String"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column7"
FilterControlWidth
=
"100px"
DataType
=
"System.DateTime"
HeaderText
=
"Column7"
SortExpression
=
"Column7"
FilterListOptions
=
"VaryByDataType"
UniqueName
=
"Column7"
Groupable
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column8"
HeaderText
=
"Column8"
ReadOnly
=
"True"
SortExpression
=
"Column8"
UniqueName
=
"Column8"
DataType
=
"System.String"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"Column9"
DataField
=
"Column9"
Groupable
=
"False"
DataType
=
"System.String"
FilterControlWidth
=
"100px"
>
<
HeaderTemplate
>
<
asp:Label
ID
=
"LabelAccountName"
runat
=
"server"
Text
=
"Account"
></
asp:Label
>
</
HeaderTemplate
>
<
ItemTemplate
>
<
asp:hyperlink
id
=
"AccountNameColumn"
runat
=
"server"
text='<%# Eval("AccountName")%>'></
asp:hyperlink
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column10"
FilterControlWidth
=
"100px"
HeaderText
=
"Column10"
SortExpression
=
"Column10"
UniqueName
=
"Column10"
Groupable
=
"False"
DataType
=
"System.String"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column11"
HeaderText
=
"Column11"
FilterControlWidth
=
"80px"
SortExpression
=
"Column11"
UniqueName
=
"Column11"
Groupable
=
"False"
DataType
=
"System.String"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column12"
HeaderText
=
"Column12"
FilterControlWidth
=
"80px"
SortExpression
=
"Column12"
UniqueName
=
"Column12"
Groupable
=
"False"
DataType
=
"System.Int16"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"Column13"
DataField
=
"Column13"
Groupable
=
"False"
DataType
=
"System.String"
FilterControlWidth
=
"100px"
>
<
HeaderTemplate
>
<
asp:Label
ID
=
"LabelSerialNumber"
runat
=
"server"
Text
=
"Serial Number"
></
asp:Label
>
</
HeaderTemplate
>
<
ItemTemplate
>
<
asp:hyperlink
id
=
"SerialNumberColumn"
runat
=
"server"
text='<%# Eval("SerialNumber")%>'></
asp:hyperlink
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column14"
FilterControlWidth
=
"100px"
DataType
=
"System.DateTime"
HeaderText
=
"Column14"
SortExpression
=
"Column14"
FilterListOptions
=
"VaryByDataType"
UniqueName
=
"Column14"
DataFormatString
=
"{0:d}"
Groupable
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column15"
HeaderText
=
"Column15"
SortExpression
=
"Column15"
UniqueName
=
"Column15"
Groupable
=
"False"
DataType
=
"System.String"
FilterControlWidth
=
"80px"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column16"
HeaderText
=
"Column16"
SortExpression
=
"Column16"
UniqueName
=
"Column16"
Groupable
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column17"
HeaderText
=
"Column17"
SortExpression
=
"Column17"
UniqueName
=
"Column17"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column18"
FilterControlWidth
=
"80px"
HeaderText
=
"Column18"
SortExpression
=
"Column18"
UniqueName
=
"Column18"
Groupable
=
"False"
DataType
=
"System.String"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column19"
FilterControlWidth
=
"80px"
HeaderText
=
"Column19"
SortExpression
=
"Column19"
DataType
=
"System.String"
UniqueName
=
"Column19"
Groupable
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column20"
DataType
=
"System.Decimal"
FilterControlWidth
=
"80px"
HeaderText
=
"Column20"
ReadOnly
=
"True"
SortExpression
=
"Column20"
UniqueName
=
"Column20"
Display
=
"True"
Groupable
=
"False"
Visible
=
"True"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column21"
DataType
=
"System.Decimal"
FilterControlWidth
=
"80px"
HeaderText
=
"Column21"
ReadOnly
=
"True"
SortExpression
=
"Column21"
UniqueName
=
"Column21"
Display
=
"True"
Groupable
=
"False"
Visible
=
"True"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column22"
DataType
=
"System.Decimal"
FilterControlWidth
=
"80px"
HeaderText
=
"Column22"
ReadOnly
=
"True"
SortExpression
=
"Column22"
UniqueName
=
"Column22"
Display
=
"True"
Groupable
=
"False"
Visible
=
"True"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column23"
DataType
=
"System.Decimal"
FilterControlWidth
=
"80px"
HeaderText
=
"Column23"
ReadOnly
=
"True"
SortExpression
=
"Column23"
UniqueName
=
"Column23"
Display
=
"True"
Groupable
=
"False"
Visible
=
"True"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column24"
DataType
=
"System.Decimal"
FilterControlWidth
=
"80px"
HeaderText
=
"Column23"
ReadOnly
=
"True"
SortExpression
=
"Column23"
UniqueName
=
"Column23"
Display
=
"True"
Groupable
=
"False"
Visible
=
"True"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column24"
DataType
=
"System.Decimal"
FilterControlWidth
=
"80px"
HeaderText
=
"Column24"
ReadOnly
=
"True"
SortExpression
=
"Column24"
UniqueName
=
"Column24"
Display
=
"True"
Groupable
=
"False"
Visible
=
"True"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column25"
DataType
=
"System.Decimal"
FilterControlWidth
=
"80px"
HeaderText
=
"Column25"
ReadOnly
=
"True"
SortExpression
=
"Column25"
UniqueName
=
"Column25"
Display
=
"True"
Groupable
=
"False"
DataFormatString
=
"{0:F2}hr"
Visible
=
"True"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column26"
DataType
=
"System.Decimal"
FilterControlWidth
=
"80px"
HeaderText
=
"Column26"
ReadOnly
=
"True"
SortExpression
=
"Column26"
UniqueName
=
"Column26"
Display
=
"True"
Groupable
=
"False"
DataFormatString
=
"{0:F2}%"
Visible
=
"True"
>
</
telerik:GridBoundColumn
>
<
telerik:GridCalculatedColumn
HeaderText
=
"Column27"
UniqueName
=
"Column27"
DataType
=
"System.Double"
DataFormatString
=
"{0:F2}hr"
DataFields
=
"Column27,Column26"
Expression
=
"{0}*100/{1}"
>
</
telerik:GridCalculatedColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column28"
HeaderText
=
"Column28"
ReadOnly
=
"True"
SortExpression
=
"Column28"
UniqueName
=
"Column28"
Display
=
"True"
Groupable
=
"False"
Visible
=
"True"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column29"
HeaderText
=
"Column29"
ReadOnly
=
"True"
SortExpression
=
"Column29"
UniqueName
=
"Column29"
Display
=
"True"
Groupable
=
"False"
Visible
=
"True"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column30"
HeaderText
=
"Column30"
ReadOnly
=
"True"
SortExpression
=
"Column30"
UniqueName
=
"Column30"
Display
=
"True"
Groupable
=
"False"
Visible
=
"True"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column31"
HeaderText
=
"Column31"
ReadOnly
=
"True"
SortExpression
=
"Column31"
UniqueName
=
"Column31"
Display
=
"True"
Groupable
=
"False"
Visible
=
"True"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"Column32"
HeaderText
=
"Column32"
ReadOnly
=
"True"
SortExpression
=
"Column32"
UniqueName
=
"Column32"
Display
=
"True"
Groupable
=
"False"
Visible
=
"True"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
mastertableview
>
<
ClientSettings
AllowDragToGroup
=
"True"
AllowColumnsReorder
=
"True"
ReorderColumnsOnClient
=
"True"
>
<
Selecting
AllowRowSelect
=
"True"
/>
<
Scrolling
AllowScroll
=
"true"
UseStaticHeaders
=
"True"
/>
<
ClientEvents
OnRowContextMenu
=
"RowContextMenu"
/>
</
ClientSettings
>
<
filtermenu
Skin
=
"Vista"
>
<
collapseanimation
duration
=
"200"
type
=
"OutQuint"
>
</
collapseanimation
>
</
filtermenu
>
</
telerik:RadGrid
>
Thanks.