I have a grid named
gvTabList which in inside the usercontrol . I load this usercontrol at runtime from Default.aspx when some required condition is met.
The usercontrol is loaded as shown. I don't have to load this usercontrol on page load.As you can see I am not loading my usercontrol in Page_Load event.
if(Condition1 is met)
{
UserControl control = (UserControl)LoadControl("~/Controls/" + Usercontrolname + ".ascx");
}
There is no problem loading the usercontrol when the condition is met. But the problem is when i click the heading of any column, the sortorder does not change. I have my funtion to handle the CustomSorting which is given below.
<
telerik:RadAjaxManager
ID
=
"radAjaxManagerTab"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"gvTabList"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"gvTabList"
LoadingPanelID
=
"ajaxLoadingPanel"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
ID
=
"ajaxLoadingPanel"
runat
=
"server"
IsSticky
=
"true"
Skin
=
"Default"
Style
=
"position: absolute; z-index: 101; top: 0; left: 0;"
>
<
img
alt
=
"Loading"
src
=
"../Images/Loading.gif"
/>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadGrid
ID
=
"gvTabList"
runat
=
"server"
Skin
=
"WebBlue"
AllowFilteringByColumn
=
"True"
AllowPaging
=
"True"
PageSize
=
"5"
AllowSorting
=
"True"
OnNeedDataSource
=
"gvTabList_NeedDataSource"
OnInit
=
"gvTabList_Init"
AutoGenerateColumns
=
"False"
GridLines
=
"None"
OnSortCommand
=
"gvTabList_SortCommand"
EnableAJAX
=
"True"
>
<
GroupingSettings
CaseSensitive
=
"false"
/>
<
MasterTableView
AllowFilteringByColumn
=
"true"
AllowMultiColumnSorting
=
"false"
AllowCustomSorting
=
"true"
>
<
RowIndicatorColumn
Visible
=
"False"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
Visible
=
"False"
>
<
HeaderStyle
Width
=
"19px"
></
HeaderStyle
>
</
ExpandCollapseColumn
>
<
CommandItemSettings
ExportToPdfText
=
"Export to Pdf"
/>
<
Columns
>
<
telerik:GridBoundColumn
AllowFiltering
=
"False"
DataField
=
"ID"
HeaderText
=
"HEDIS #"
UniqueName
=
"HedisID"
>
<
HeaderStyle
HorizontalAlign
=
"Center"
Width
=
"140"
/>
<
ItemStyle
HorizontalAlign
=
"Center"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
AllowFiltering
=
"False"
DataField
=
"HedisSubMeasure"
HeaderText
=
"HEDIS Domain"
UniqueName
=
"HedisDomain"
>
<
HeaderStyle
HorizontalAlign
=
"Center"
Width
=
"150"
/>
<
ItemStyle
HorizontalAlign
=
"Center"
/>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
<
PagerStyle
Mode
=
"NumericPages"
/>
</
telerik:RadGrid
>
I checked by debugging, but " e.OldSortOrder" always gives None.
protected
void
gvTabList_SortCommand(
object
source, GridSortCommandEventArgs e)
{
GridSortExpression sortExpr =
new
GridSortExpression();
switch
(e.OldSortOrder)
{
case
GridSortOrder.None:
sortExpr.FieldName = e.SortExpression;
sortExpr.SortOrder = GridSortOrder.Descending;
e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
break
;
case
GridSortOrder.Ascending:
sortExpr.FieldName =
"ID"
;
sortExpr.SortOrder = GridSortOrder.Ascending;
e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
break
;
case
GridSortOrder.Descending:
sortExpr.FieldName = e.SortExpression;
sortExpr.SortOrder = GridSortOrder.Ascending;
e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
break
;
}
e.Canceled =
true
;
gvTabList.Rebind();
}
Is this problem related with dynamically loading the usercontrol . I have found many forums saying " UserControl must be loaded during Init method". But as you can see I need this usercontrol only if a condition is met, I dont need it always. so I am not loading it in Init method.
if any one has faced this problem, please send me the solution. It will be a great help.