or
I have a rad panel bar.
| RadPanelBar_MenuLeft.DataSource = _dtFunctions; |
| RadPanelBar_MenuLeft.DataFieldID = "FunctionID"; |
| RadPanelBar_MenuLeft.DataTextField = "FunctionName"; |
| RadPanelBar_MenuLeft.DataValueField = "FunctionID"; |
| RadPanelBar_MenuLeft.DataNavigateUrlField = "PageName"; |
| RadPanelBar_MenuLeft.DataBind(); |
| private void RadPanelBar_MenuLeft_ItemClick(object sender, Telerik.Web.UI.RadPanelBarEventArgs e) |
| { |
| if (e.Item.Items.Count > 0) |
| { |
| if (e.Item.Expanded == false) |
| { |
| _Val = "Collapsed panel item - " + e.Item.Value; |
| } |
| else |
| { |
| _Val = "Expanded panel item - " + e.Item.Value; |
| } |
| } |
| else |
| { |
| _Val = "Clicked panel item - " + e.Item.Value; |
| } |
| } |
| The Panel item click will work if the DataNavigateUrlField is not given. |
| How to get the selected items value even if the DataNavigateUrlField is given. |
| Plz help |
| this.RadPanelBar_MenuLeft.ItemClick += new Telerik.Web.UI.RadPanelBarEventHandler(this.RadPanelBar_MenuLeft_ItemClick); |
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.

