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.