This is a migrated thread and some comments may be shown as answers.

[Solved] RadGrid Sorting

1 Answer 103 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Mugdha Aditya
Top achievements
Rank 1
Mugdha Aditya asked on 13 Mar 2010, 09:40 AM
Hello,

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;

 

}

}

1 Answer, 1 is accepted

Sort by
0
Pavlina
Telerik team
answered on 15 Mar 2010, 12:59 PM
Hi Mugdha,

Please, have in mind that Simple data-binding through the DataBind() method can be used in simple scenarios which do not require the grid to perform complex operations such as sorting and  paging. Therefore, I suggest you switch to advanced binding with NeedDataSource event handling to see whether this helps.

Kind regards,
Pavlina
the Telerik team

Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
Tags
Grid
Asked by
Mugdha Aditya
Top achievements
Rank 1
Answers by
Pavlina
Telerik team
Share this question
or