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

Telerik Grid Hierarchy: Details Grid Paging not working

1 Answer 123 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Mohamed
Top achievements
Rank 2
Mohamed asked on 12 Jul 2011, 05:41 PM
Telerik Grid Hierarchy: Details Grid Paging runs the paging of the main grid,

i.e, when I click on the page 2 in the details grid, the main grid show the second page

i want to keep the main grid as it's and show the second page of the detail grid.

This is my code

<telerik:RadGrid ID="gridPinHistory" runat="server" AllowFilteringByColumn="True"

AllowPaging="True" PageSize="20" AllowSorting="True" AutoGenerateColumns="False"

CellSpacing="0" GridLines="None" Skin="Office2007" OnPageIndexChanged="gridPinHistory_PageIndexChanged"

AllowCustomPaging="false" OnNeedDataSource="gridPinHistory_NeedDataSource" OnDetailTableDataBind="gridPinHistory_DetailTableDataBind">

   <PagerStyle Mode="NextPrevNumericAndAdvanced" />

   <MasterTableView TableLayout="Auto" DataKeyNames="PIN">

     <Columns>

       <telerik:GridTemplateColumn HeaderText="PIN" DataField="PIN" AllowFiltering="true">

         <ItemTemplate>

           <asp:LinkButton ID="lbtnSearchCustomer2" runat="server" Text='<%# Eval("PIN") %>'

           OnClientClick="" />

         </ItemTemplate>

       </telerik:GridTemplateColumn>

       <telerik:GridBoundColumn DataField="OrderID" HeaderText="Order ID" DataType="System.Int32">

       </telerik:GridBoundColumn>

       <telerik:GridBoundColumn DataField="OrderDate" HeaderText="Order Date" DataType="System.DateTime">

       </telerik:GridBoundColumn>

       <telerik:GridBoundColumn DataField="Last_RCOrderID" HeaderText="Last Recharge Order ID"

       DataType="System.String">

       </telerik:GridBoundColumn>

       <telerik:GridBoundColumn DataField="Last_RCDate" HeaderText="Last Recharge Date"

       DataType="System.DateTime">

       </telerik:GridBoundColumn>

       <telerik:GridBoundColumn DataField="PhoneCardName" HeaderText="PhoneCard Name"                             DataType="System.String">

       </telerik:GridBoundColumn>

       <telerik:GridBoundColumn DataField="FaceValue" HeaderText="Face Value" DataType="System.String">

       </telerik:GridBoundColumn>

       <telerik:GridBoundColumn DataField="TollFree" HeaderText="Toll Free" DataType="System.String">

       </telerik:GridBoundColumn>

       <telerik:GridBoundColumn DataField="SwitchAccountNumber" HeaderText=" Switch Account ID"

       DataType="System.String">

       </telerik:GridBoundColumn>

       <telerik:GridBoundColumn DataField="Provider" HeaderText="Provider" DataType="System.String">

       </telerik:GridBoundColumn>

     </Columns>

    <DetailTables>

   <telerik:GridTableView runat="server" AllowPaging="true" PageSize="10" Name="PinOrders"

    AllowCustomPaging="false" DataKeyNames="OrderID">

 <RowIndicatorColumn>

 <HeaderStyle Width="20px" />

 </RowIndicatorColumn>

 <ParentTableRelation>

 <telerik:GridRelationFields DetailKeyField="PIN" MasterKeyField="PIN" />

 </ParentTableRelation>

<Columns>

  <telerik:GridBoundColumn DataField="OrderID" HeaderText="Order ID" DataType="System.Int32">

  </telerik:GridBoundColumn>

  <telerik:GridBoundColumn DataField="OrderDate" HeaderText="Order Date" DataType="System.DateTime">

  </telerik:GridBoundColumn>

  <telerik:GridBoundColumn DataField="OrderType" HeaderText="Order Type" DataType="System.Double">

  </telerik:GridBoundColumn>

  <telerik:GridBoundColumn DataField="SubTotal" HeaderText="Sub Total" DataType="System.Double">

  </telerik:GridBoundColumn>

  <telerik:GridBoundColumn DataField="OrderDiscount" HeaderText="OrderDiscount" DataType="System.String">

  </telerik:GridBoundColumn>

  <telerik:GridBoundColumn DataField="ProdDiscount" HeaderText="ProdDiscount" DataType="System.String">

  </telerik:GridBoundColumn>

  <telerik:GridBoundColumn DataField="DiscountCode" HeaderText="DiscountCode" DataType="System.String">

  </telerik:GridBoundColumn>

  <telerik:GridBoundColumn DataField="RefCredit" HeaderText="RefCredit" DataType="System.String">

  </telerik:GridBoundColumn>

  <telerik:GridBoundColumn DataField="TransFee" HeaderText="TransFee" DataType="System.String">

  </telerik:GridBoundColumn>

  <telerik:GridBoundColumn DataField="GrandTotal" HeaderText="Grand Total" DataType="System.Double">

  </telerik:GridBoundColumn>

  <telerik:GridBoundColumn DataField="IP" HeaderText="IP" DataType="System.String">

  </telerik:GridBoundColumn>

  </Columns>

</telerik:GridTableView>

</DetailTables>

</MasterTableView>

<FilterMenu EnableImageSprites="False">

</FilterMenu>

<HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default">

</HeaderContextMenu>

</telerik:RadGrid>

protected void gridPinHistory_PageIndexChanged(object sender, Telerik.Web.UI.GridPageChangedEventArgs e)

{

 if (ViewState["PinHistory"] != null)

  {

     gridPinHistory.CurrentPageIndex = e.NewPageIndex;

     gridPinHistory.DataSource = ViewState["PinHistory"];

     gridPinHistory.DataBind();

  }

}

 

 

protected void gridPinHistory_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)

{

 if (ViewState["PinHistory"] != null)

 {

    gridPinHistory.DataSource = ViewState["PinHistory"];

 }

}

Thanx

1 Answer, 1 is accepted

Sort by
0
Accepted
Iana Tsolova
Telerik team
answered on 15 Jul 2011, 11:11 AM
Hi Mohamed,

The behavior you experience is expected. Because no matter which GridTableView is paged, you are changing the CurrentPageIndex of the grid which will affect the MasterTableView. Therefore I suggest that you remove the code from the PageIndexChanged event.
Note that when the grid is bound through the NeedDataSource, you do not need to call the DataBind method for it or set its DataSource outside the NeedDataSource event handler. In this case it will automatically handle paging, sorting, filter, etc. Furthermore, when you have hierarchical grid bound programmatically, through the NeedDataSource and DetailTableDataBind event you do not need to set any ParentTableRelations. They are used only when the grid is bound though declarative DataSource controls like SlqDataSource, LinqDataSource, etc.

Check this demo for more information.

Kind regards,
Iana
the Telerik team

Register for the Q2 2011 What's New Webinar Week. Mark your calendar for the week starting July 18th and book your seat for a walk through of all the exciting stuff we will ship with the new release!

Tags
Grid
Asked by
Mohamed
Top achievements
Rank 2
Answers by
Iana Tsolova
Telerik team
Share this question
or