i am working on nested radgrid.
i wants to sorting and paging functinality for the master grid.
i tryed but its not working
Please give me the code for the same.
<form runat="server" id="mainForm" method="post">
<telerik:RadScriptManager runat="server" ID="ScriptManager1">
</telerik:RadScriptManager>
<!-- content start -->
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<ajaxsettings>
<telerik:AjaxSetting AjaxControlID="RadGrid1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</ajaxsettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" />
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False"
AllowSorting="True" AllowMultiRowSelection="False" AllowPaging="True" PageSize="5"
GridLines="None"
OnItemCreated="RadGrid1_ItemCreated"
MasterTableView-AllowMultiColumnSorting="false"
OnItemCommand="RadGrid1_ItemCommand"
onsortcommand="RadGrid1_SortCommand1" >
<pagerstyle mode="NumericPages"></pagerstyle>
<mastertableview datakeynames="IssueID" allowmulticolumnsorting="false" grouploadmode="Server">
<NestedViewTemplate>
<asp:Panel runat="server" ID="InnerContainer" CssClass="viewWrap" Visible="false">
<telerik:RadTabStrip runat="server" ID="TabStip1" MultiPageID="Multipage1"
SelectedIndex="0">
<Tabs>
<telerik:RadTab runat="server" Text="ViewIssue" PageViewID="PageView1">
</telerik:RadTab>
</Tabs>
</telerik:RadTabStrip>
<telerik:RadMultiPage runat="server" ID="Multipage1" SelectedIndex="0" RenderSelectedPageOnly="false">
<telerik:RadPageView runat="server" ID="PageView1">
<telerik:RadGrid runat="server" ID="OrdersGrid" AutoGenerateColumns="False" AllowMultiRowSelection="False" >
<MasterTableView ShowHeader="true" AutoGenerateColumns="False" HierarchyLoadMode="ServerOnDemand">
<NoRecordsTemplate>
Records Not Found
</NoRecordsTemplate>
<Columns>
<telerik:GridNumericColumn SortExpression="Description" HeaderText="Description" HeaderButtonType="TextButton"
DataField="Description" UniqueName="Description">
</telerik:GridNumericColumn>
<telerik:GridBoundColumn SortExpression="CSTComments" HeaderText="CSTComments" HeaderButtonType="TextButton"
DataField="CSTComments" UniqueName="CSTComments" Aggregate="Count">
</telerik:GridBoundColumn>
<telerik:GridDateTimeColumn SortExpression="AnalystComments" HeaderText="AnalystComments" HeaderButtonType="TextButton"
DataField="AnalystComments" UniqueName="AnalystComments" >
</telerik:GridDateTimeColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
</telerik:RadPageView>
</telerik:RadMultiPage>
</asp:Panel>
</NestedViewTemplate>
<Columns>
<telerik:GridBoundColumn SortExpression="CoName" HeaderText="CoName" HeaderButtonType="TextButton"
DataField="CoName" UniqueName="CoName">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression="ScenarioName" HeaderText="ScenarioName" HeaderButtonType="TextButton"
DataField="ScenarioName" UniqueName="ScenarioName">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression="Subject" HeaderText="Subject" HeaderButtonType="TextButton"
DataField="Subject" UniqueName="Subject">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn SortExpression="IssueDate"
HeaderText="IssueDate" HeaderButtonType="TextButton" DataField="IssueDate" UniqueName="IssueDate">
</telerik:GridBoundColumn>
</Columns>
</mastertableview>
<clientsettings allowdragtogroup="true" />
</telerik:RadGrid>
</form>
------------------------------------ code behind....................................................................................
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
sortExpr.FieldName =
"CoName";
sortExpr.SortOrder =
GridSortOrder.Ascending;
//Add sort expression, which will sort against first column
RadGrid1.MasterTableView.SortExpressions.AddSortExpression(sortExpr);
BindMasterGrid();
}
}
private void BindMasterGrid()
{
try
{
dsIssueData = moIssueTrackBL.GetIssueDetails(0, 82, 0);
RadGrid1.DataSource =
null;
RadGrid1.DataBind();
if (dsIssueData.Tables[0] != null && dsIssueData.Tables[0].Rows.Count > 0)
{
RadGrid1.DataSource = dsIssueData.Tables[0];
RadGrid1.DataBind();
}
}
catch (Exception)
{
throw;
}
}
protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
{
if (e.CommandName == RadGrid.ExpandCollapseCommandName)
{
((
GridDataItem)e.Item).ChildItem.FindControl("InnerContainer").Visible = !e.Item.Expanded;
GridDataItem item=(GridDataItem)e.Item;
iIssueID =
Convert.ToInt32(item.OwnerTableView.DataKeyValues[item.ItemIndex]["IssueID"].ToString());
dsViewIssueData = moIssueTrackBL.GetViewIssueDetails(iIssueID);
RadGrid OrdersGrid = (RadGrid)((GridDataItem)e.Item).ChildItem.FindControl("OrdersGrid");
OrdersGrid.DataSource = dsViewIssueData.Tables[0];
OrdersGrid.DataBind();
}
}
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)
{
if (e.Item is GridNestedViewItem)
{
e.Item.FindControl(
"InnerContainer").Visible = ((GridNestedViewItem)e.Item).ParentItem.Expanded;
}
}
protected void RadGrid1_SortCommand1(object source, GridSortCommandEventArgs e)
{
switch (e.OldSortOrder)
{
case GridSortOrder.None:
sortExpr.FieldName = e.SortExpression;
sortExpr.SortOrder =
GridSortOrder.Ascending;
e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
break;
case GridSortOrder.Ascending:
sortExpr.FieldName = e.SortExpression;
sortExpr.SortOrder =
GridSortOrder.Descending;
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;
}
}