I have a grid named
gvTabList which in inside the usercontrol . I load
this usercontrol at runtime from Default.aspx when an image button is clicked.
<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 need to display this control when the user clicks the image button that is why I have kept it inside btnLoadControl_Click event. But there are so many forums saying controls have to be loaded either during Page_Load or Init method. I am not sure how to do that.
protected void btnLoadControl_Click(object sender, ImageClickEventArgs e)
{
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.
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();
}
I checked by debugging, but " e.OldSortOrder" always gives "None" type.
Is this problem related with dynamically loading the usercontrol . As you
can see I need this usercontrol only when the Image button is clicked. 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.