I have a RadGrid that does sorting, but only for the current page. This particular grid has a year's worth of data divided into rows of 7 (52 pages * 7 = 365 days), but when I click on the first column (a date column named ReportDate) to sort the data, the sort is only applied against the current page's data! At first I thought maybe this was related to how date values are sometimes treated as strings, but that doesn't seem to be the case.
Here's a snippet of the grid's markup:
<
telerik:RadGrid
ID
=
"RadGrid_StaffProductivitySummary"
runat
=
"server"
AutoGenerateColumns
=
"False"
PageSize
=
"7"
Width
=
"1185px"
Height
=
"500px"
GridLines
=
"None"
VirtualItemCount
=
"365"
Skin
=
"Windows7"
HorizontalAlign
=
"Center"
enablerowhoverstyle
=
"true"
>
<
ItemStyle
HorizontalAlign
=
"Center"
BorderWidth
=
"0px"
/>
<
MasterTableView
horizontalalign
=
"Center"
gridlines
=
"None"
AllowPaging
=
"True"
AllowCustomPaging
=
"true"
PageSize
=
"7"
AllowSorting
=
"true"
commanditemdisplay
=
"Top"
>
<
SortExpressions
>
<
telerik:GridSortExpression
FieldName
=
"ReportDateSort"
SortOrder
=
"Descending"
/>
</
SortExpressions
>
<
CommandItemSettings
ExportToPdfText
=
"Export to Pdf"
ShowAddNewRecordButton
=
"False"
></
CommandItemSettings
>
<
Columns
>
<
telerik:GridDateTimeColumn
DataField
=
"ReportDate"
SortExpression
=
"ReportDateSort"
UniqueName
=
"ReportDate"
HeaderText
=
""
PickerType
=
"None"
DataFormatString
=
"{0:dd-MMM-yyyy}"
HeaderStyle-Width
=
"75px"
HeaderStyle-Font-Bold
=
"true"
>
</
telerik:GridDateTimeColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"IncomingFaxesDaily"
DataField
=
"IncomingFaxesDaily"
InitializeTemplatesFirst
=
"false"
>
<
HeaderStyle
Width
=
"200px"
/>
<
HeaderTemplate
>
<
table
id
=
"faxHeaderTable"
cellspacing
=
"1"
cellpadding
=
"3"
>
<
tr
>
<
td
colspan
=
"4"
align
=
"center"
style
=
"background-color: #D8E6F1;"
><
b
>Daily Fax Summary</
b
>
</
td
>
</
tr
>
<
tr
>
<
td
style
=
"width: 25%;"
><
b
>Incoming</
b
></
td
>
<
td
style
=
"width: 25%;"
><
b
>Processed</
b
></
td
>
<
td
style
=
"width: 25%;"
><
b
>Not Processed</
b
></
td
>
<
td
style
=
"width: 25%;"
><
b
>Deleted</
b
></
td
>
</
tr
>
</
table
>
</
HeaderTemplate
>
<
ItemTemplate
>
<
table
id
=
"faxItemTable"
cellspacing
=
"1"
cellpadding
=
"1"
width
=
"100%"
style
=
"text-align:center;"
border
=
"0"
>
<
tr
>
<
td
style
=
"width: 25%;"
><%# DataBinder.Eval(Container.DataItem, "IncomingFaxesDaily") %></
td
>
<
td
style
=
"width: 25%;"
><%# DataBinder.Eval(Container.DataItem, "FaxesProcessedDaily") %></
td
>
<
td
style
=
"width: 25%;"
><%# DataBinder.Eval(Container.DataItem, "FaxesNotProcessedDaily") %></
td
>
<
td
style
=
"width: 25%;"
><%# DataBinder.Eval(Container.DataItem, "FaxesDeletedDaily") %></
td
>
</
tr
>
</
table
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
<
EditFormSettings
>
<
EditColumn
UniqueName
=
"EditCommandColumn1"
>
</
EditColumn
>
</
EditFormSettings
>
<
ItemStyle
Font-Bold
=
"False"
Font-Italic
=
"False"
Font-Overline
=
"False"
Font-Strikeout
=
"False"
Font-Underline
=
"False"
HorizontalAlign
=
"Center"
Wrap
=
"True"
VerticalAlign
=
"Middle"
/>
<
AlternatingItemStyle
Font-Bold
=
"False"
Font-Italic
=
"False"
Font-Overline
=
"False"
Font-Strikeout
=
"False"
Font-Underline
=
"False"
HorizontalAlign
=
"Center"
Wrap
=
"True"
/>
<
EditItemStyle
Font-Bold
=
"False"
Font-Italic
=
"False"
Font-Overline
=
"False"
Font-Strikeout
=
"False"
Font-Underline
=
"False"
HorizontalAlign
=
"Center"
Wrap
=
"True"
/>
<
PagerStyle
Font-Bold
=
"False"
Font-Italic
=
"False"
Font-Overline
=
"False"
Font-Strikeout
=
"False"
Font-Underline
=
"False"
HorizontalAlign
=
"Center"
VerticalAlign
=
"Middle"
Wrap
=
"True"
/>
<
HeaderStyle
Font-Bold
=
"False"
Font-Italic
=
"False"
Font-Overline
=
"False"
Font-Strikeout
=
"False"
Font-Underline
=
"False"
HorizontalAlign
=
"Center"
Wrap
=
"True"
VerticalAlign
=
"Bottom"
/>
</
MasterTableView
>
<
HeaderStyle
BorderStyle
=
"None"
/>
<
EditItemStyle
BackColor
=
"#FFFF99"
Font-Bold
=
"False"
Font-Italic
=
"False"
Font-Overline
=
"False"
Font-Strikeout
=
"False"
Font-Underline
=
"False"
Wrap
=
"True"
/>
</
telerik:RadGrid
>
I'm currently using the standard sorting (no overriding of the default sorting behavior by capturing the SortCommand event), though I've tried it both ways. The data source is populated in the NeedDataSource event handler and this is working fine (I even tried re-applying the Sort Expression here, but to no avail). Currently, I have modified the data source resultset to return the same date in two columns, ReportDate and ReportDateSort. I originally just used ReportDate for both the DataField and SortExpression values, but then thought maybe I needed a separate sorting column in case the format of the data (perhaps as a string) was causing problems, so I added ReportDateSort fort his purpose.
None of these different options have worked thus far. No matter which page I'm on within the data source, the sort only applies to that page.
Any help appreciated!
Thanks,
Jon