or
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPlaceholder.master" AutoEventWireup="true" CodeFile="AccountsTest.aspx.cs" Inherits="Accounts_AccountsTest" %><%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <!-- custom head section --> <style type="text/css"> .GridPager_Default INPUT { border: 1px solid gray; height: 14px; font-size: 11px; } .CustomPagerHolder { float:left; } .NumericPagerHolder { float:right; } </style> <!-- end of custom head section --> <telerik:RadScriptManager ID="RadScriptManager1" runat="server" /> <!-- content start --> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="DropDownList1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadGrid ID="RadGrid1" OnPreRender="RadGrid1_PreRender" ShowStatusBar="true" runat="server" AutoGenerateColumns="False" PageSize="10" AllowSorting="True" AllowMultiRowSelection="False" AllowPaging="True" GridLines="None" OnNeedDataSource="RadGrid1_NeedDataSource" OnItemCreated="RadGrid1_ItemCreated"> <MasterTableView DataKeyNames="Account_ID" AllowMultiColumnSorting="True" DataMember="Accounts"> <DetailTables> <telerik:GridTableView DataKeyNames="Account_ID" Width="100%" DataMember="Detail" runat="server"> <ParentTableRelation> <telerik:GridRelationFields DetailKeyField="Account_ID" MasterKeyField="Account_ID" /> </ParentTableRelation> <Columns> <telerik:GridBoundColumn SortExpression="Legal_Name" HeaderText="Legal Name" HeaderButtonType="TextButton" DataField="Legal_Name" UniqueName="LegalName"> </telerik:GridBoundColumn> <telerik:GridBoundColumn SortExpression="Current_Effective_Date" HeaderText="Current Effective Date" HeaderButtonType="TextButton" DataField="Current_Effective_Date" UniqueName="CurrentEffectiveDate" DataFormatString="{0:D}"> </telerik:GridBoundColumn> </Columns> </telerik:GridTableView> </DetailTables> <Columns> <telerik:GridBoundColumn SortExpression="Account_ID" HeaderText="AccountID" HeaderButtonType="TextButton" DataField="Account_ID" UniqueName="AccountID"> </telerik:GridBoundColumn> <telerik:GridBoundColumn SortExpression="Account_Name" HeaderText="Account Name" HeaderButtonType="TextButton" DataField="Account_Name" UniqueName="AccountName"> </telerik:GridBoundColumn> </Columns> <PagerStyle Mode="NumericPages" PageButtonCount="5" AlwaysVisible="true"></PagerStyle> </MasterTableView> </telerik:RadGrid></asp:Content>using System;using System.Collections.Generic;using System.Data;using System.Data.Common;using System.Data.SqlClient;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using HealthConnect.DAL;using Telerik.Web.UI;public partial class Accounts_AccountsTest : HealthConnect.Web.AMS.AMSPage{ private DataSet getData() { {snip query setup} DataSet dataSet = db.ExecuteDataSet(dbCommand); dataSet.Tables[0].TableName = "Accounts"; dataSet.Tables[1].TableName = "Paging"; dataSet.Tables[2].TableName = "Detail"; DataColumn[] quotedGridParentColumns = { dataSet.Tables["Accounts"].Columns["Account_ID"] }; DataColumn[] planChildColumns = { dataSet.Tables["Detail"].Columns["Account_ID"] }; DataRelation dr = new DataRelation("pkPlanDetail", quotedGridParentColumns, planChildColumns, false); dataSet.Relations.Add(dr); return dataSet; } protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) { DataSet dataSet = getData(); RadGrid1.DataSource = dataSet; ViewState["PagingInfo"] = dataSet.Tables[1]; ViewState["CurrentPage"] = RadGrid1.CurrentPageIndex; } protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) { if (e.Item is GridPagerItem) { // // If this is uncommented detail doesn't work, if this is commented detail works. // //GridPagerItem item = (GridPagerItem)e.Item; //Control numericPager = item.GetNumericPager(); //item.PagerContentCell.Controls.Clear(); //Panel myPagerPanel = new Panel(); //myPagerPanel.CssClass = "CustomPagerHolder"; //myPagerPanel.Controls.Add(new MyPager(e.Item.OwnerTableView.PagingManager, e.Item.OwnerTableView, (DataTable)ViewState["PagingInfo"], (int)ViewState["CurrentPage"])); //item.PagerContentCell.Controls.Add(myPagerPanel); } } private class MyPager : Control { private GridPagingManager paging; private GridTableView tableView; private DataTable dataTable; private int currentPage = 0; DropDownList dropDownList; public MyPager(GridPagingManager paging, GridTableView tableView, DataTable dataTable, int currentPage) { this.paging = paging; this.tableView = tableView; this.dataTable = dataTable; this.currentPage = currentPage; this.EnsureChildControls(); } protected override void CreateChildControls() { this.Controls.Add(new LiteralControl("Page: ")); dropDownList = new DropDownList(); dropDownList.ID = "DropDownList1"; dropDownList.DataTextField = "Text"; dropDownList.DataValueField = "Value"; dropDownList.SelectedIndexChanged += new EventHandler(this.SelectedIndexChanged); dropDownList.AutoPostBack = true; this.Controls.Add(dropDownList); } protected override void OnPreRender(EventArgs e) { dropDownList.DataSource = this.dataTable; dropDownList.DataBind(); // This doesn't work, CurrentPageIndex is always 0 //dropDownList.SelectedIndex = this.paging.CurrentPageIndex; dropDownList.SelectedIndex = currentPage; base.OnPreRender(e); } private void SelectedIndexChanged(object sender, EventArgs e) { this.tableView.CurrentPageIndex = dropDownList.SelectedIndex; this.tableView.Rebind(); } }}Here is an example of the markup I've used. I removed the markup from the other tabs and from the right RadPane for brevity:
<div style="width:100%; height:94%"> <telerik:RadSplitter ID="rsAppraisalDetail" runat="server" Width="100%" Height="100%" Orientation="Vertical" VisibleDuringInit="False" OnClientLoaded="rsAppraisalDetail_Loaded"> <telerik:RadPane ID="rpAppraisalDetailLeft" runat="server" scrolling="Y" Height="100%"> <telerik:RadTabStrip ID="tsAppraisalDetail" runat="server" MultiPageID="mpAppraisalDetail" SelectedIndex="0"> <Tabs> <telerik:RadTab Text="<%$ Resources: GeneralInformation %>" PageViewID="pvGeneral" /> <telerik:RadTab Text="<%$ Resources: LandAndFeatures %>" PageViewID="pvLandFeatures" /> <telerik:RadTab Text="<%$ Resources: Buildings %>" PageViewID="pvBuildings" /> <telerik:RadTab Text="<%$ Resources: SalesHistory %>" PageViewID="pvSales" /> <telerik:RadTab Text="<%$ Resources: ExemptionsAndAssessment %>" PageViewID="pvExemptions" /> <telerik:RadTab Text="<%$ Resources: Notes %>" PageViewID="pvNotes" /> </Tabs> </telerik:RadTabStrip> <telerik:RadMultiPage ID="mpAppraisalDetail" runat="server" Width="100%" SelectedIndex="0" > <telerik:RadPageView ID="pvGeneral" runat="server" CssClass="pageView"> </telerik:RadPageView> <telerik:RadPageView ID="pvLandFeatures" runat="server" CssClass="pageView"> </telerik:RadPageView> <telerik:RadPageView ID="pvBuildings" runat="server" CssClass="pageView"> <div> <asp:Label runat="server" Text="<%$ Resources:RpaControlCaptions, lblBuildings %>" /><br /> <telerik:RadGrid ID="dtgBuildings" runat="server" AllowPaging="true" AllowSorting="true" AllowFilteringByColumn="true" ShowFooter="true" AutoGenerateColumns="false" EnableHeaderContextMenu="true" EnableHeaderContextFilterMenu="true" AllowCustomPaging="true" PageSize="5" Width="100%" OnNeedDataSource="dtgBuildings_NeedDataSource" OnPreRender="dtgBuildings_PreRender" OnSelectedIndexChanged="dtgBuildings_SelectedIndexChanged"> <ClientSettings EnablePostBackOnRowClick="true"> <Selecting AllowRowSelect="true" /> </ClientSettings> <MasterTableView runat="server" DataKeyNames="Id" HierarchyLoadMode="Client" IsFilterItemExpanded="false"> <NestedViewTemplate> <telerik:RadGrid ID="dtgBuildingSections" runat="server" AllowPaging="true" AllowSorting="true" AllowFilteringByColumn="true" AutoGenerateColumns="false" EnableHeaderContextMenu="true" EnableHeaderContextFilterMenu="true" AllowCustomPaging="true" PageSize="5" Width="100%" OnNeedDataSource="dtgBuildingSections_NeedDataSource"> <MasterTableView runat="server" DataKeyNames="Id" IsFilterItemExpanded="false"> <Columns> <telerik:GridBoundColumn UniqueName="YearBuilt" DataField="YearBuilt" HeaderText="<%$ Resources:RpaControlCaptions, lblYear %>" DataType="System.Int16" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" /> <telerik:GridBoundColumn UniqueName="ImprovementModelDescr" DataField="ImprovementModelDescr" HeaderText="<%$ Resources:RpaControlCaptions, lblStyle %>" /> <telerik:GridBoundColumn UniqueName="FramingClassDescr" DataField="FramingClassDescr" HeaderText="<%$ Resources:RpaControlCaptions, lblClass %>" /> <telerik:GridBoundColumn UniqueName="ActualArea" DataField="ActualArea" HeaderText="<%$ Resources:RpaControlCaptions, lblActualArea %>" DataType="System.Decimal" DataFormatString="{0:N0}" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" /> <telerik:GridBoundColumn UniqueName="PercentComplete" DataField="PercentComplete" HeaderText="<%$ Resources:RpaControlCaptions, lblPercentComplete %>" DataType="System.Decimal" DataFormatString="{0:P0}" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" /> </Columns> </MasterTableView> </telerik:RadGrid> </NestedViewTemplate> <Columns> <telerik:GridBoundColumn UniqueName="BuildingName" DataField="BuildingName" HeaderText="<%$ Resources:RpaControlCaptions, lblBuildingName %>" /> <telerik:GridBoundColumn UniqueName="ImprovementTypeDescr" DataField="ImprovementTypeDescr" HeaderText="<%$ Resources:RpaControlCaptions, lblBuildingType %>" /> <telerik:GridBoundColumn UniqueName="EffectiveYear" DataField="EffectiveYear" HeaderText="<%$ Resources:RpaControlCaptions, lblEffectiveYear %>" DataType="System.Int16" ItemStyle-HorizontalAlign="Right" HeaderStyle-HorizontalAlign="Right" /> <telerik:GridBoundColumn UniqueName="ActualArea" DataField="ActualArea" HeaderText="<%$ Resources:RpaControlCaptions, lblActualArea %>" DataType="System.Decimal" DataFormatString="{0:N0}" ItemStyle-HorizontalAlign="Right" HeaderStyle-HorizontalAlign="Right" /> <telerik:GridBoundColumn UniqueName="FeatureCount" DataField="AttachedFeatures.Count" HeaderText="<%$ Resources:RpaControlCaptions, lblFeatures %>" DataType="System.Int32" ItemStyle-HorizontalAlign="Right" HeaderStyle-HorizontalAlign="Right" DataFormatString="{0:N0}" /> <telerik:GridBoundColumn UniqueName="FinalValue" DataField="FinalValue" HeaderText="<%$ Resources:RpaControlCaptions, lblValue %>" DataType="System.Decimal" DataFormatString="{0:C0}" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" /> </Columns> </MasterTableView> </telerik:RadGrid> </div> <asp:Panel runat="server" ID="pnlBuildingChildGrids"> <div style="padding-top:10px; margin-right: .5%; float:left; width:49.5%;"> <asp:Label runat="server" Text="<%$ Resources:RpaControlCaptions, lblStructuralElements %>" /><br /> <telerik:RadGrid ID="dtgElements" runat="server" AllowPaging="true" AllowSorting="true" AllowFilteringByColumn="true" ShowFooter="true" AutoGenerateColumns="false" EnableHeaderContextMenu="true" EnableHeaderContextFilterMenu="true" AllowCustomPaging="true" PageSize="5" Width="100%" OnNeedDataSource="dtgElements_NeedDataSource"> <MasterTableView runat="server" DataKeyNames="ElementCategoryDescr, ElementCodeDescr" IsFilterItemExpanded="false"> <Columns> <telerik:GridBoundColumn UniqueName="ElementCategoryDescr" DataField="ElementCategoryDescr" HeaderText="<%$ Resources:RpaControlCaptions, lblCategory %>" /> <telerik:GridBoundColumn UniqueName="ElementCodeDescr" DataField="ElementCodeDescr" HeaderText="<%$ Resources:RpaControlCaptions, lblDescription %>" /> <telerik:GridBoundColumn UniqueName="Percent" DataField="Percent" HeaderText="<%$ Resources:RpaControlCaptions, lblPercent %>" DataType="System.Decimal" DataFormatString="{0:P0}" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" /> </Columns> </MasterTableView> </telerik:RadGrid> </div> <div style="padding-top:10px; margin-left: .5%; float:right; width:49.5%;"> <asp:Label runat="server" Text="<%$ Resources:RpaControlCaptions, lblUnitCounts %>" /><br /> <telerik:RadGrid ID="dtgUnits" runat="server" AllowPaging="true" AllowSorting="true" AllowFilteringByColumn="true" ShowFooter="true" AutoGenerateColumns="false" EnableHeaderContextMenu="true" EnableHeaderContextFilterMenu="true" AllowCustomPaging="true" PageSize="5" Width="100%" OnNeedDataSource="dtgUnits_NeedDataSource"> <MasterTableView runat="server" DataKeyNames="ElementCategoryDescr, ElementCodeDescr" IsFilterItemExpanded="false"> <Columns> <telerik:GridBoundColumn UniqueName="ElementCategoryDescr" DataField="ElementCategoryDescr" HeaderText="<%$ Resources:RpaControlCaptions, lblCategory %>" /> <telerik:GridBoundColumn UniqueName="ElementCodeDescr" DataField="ElementCodeDescr" HeaderText="<%$ Resources:RpaControlCaptions, lblDescription %>" /> <telerik:GridBoundColumn UniqueName="UnitCount" DataField="UnitCount" HeaderText="<%$ Resources:RpaControlCaptions, lblUnits %>" DataType="System.Int32" DataFormatString="{0:N0}" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" /> </Columns> </MasterTableView> </telerik:RadGrid> </div> <div style="clear:both; padding-top:10px"> <asp:Label runat="server" Text="<%$ Resources: AttachedFeatures %>" /><br /> <telerik:RadGrid ID="dtgBuildingFeatures" runat="server" AllowPaging="true" AllowSorting="true" AllowFilteringByColumn="true" ShowFooter="true" AutoGenerateColumns="false" EnableHeaderContextMenu="true" EnableHeaderContextFilterMenu="true" AllowCustomPaging="true" PageSize="5" Width="100%" OnNeedDataSource="dtgBuildingFeatures_NeedDataSource"> <MasterTableView runat="server" DataKeyNames="Id" IsFilterItemExpanded="false"> <Columns> <telerik:GridBoundColumn UniqueName="CodeShortDescr" DataField="CodeShortDescr" HeaderText="<%$ Resources: FeatureName %>" /> <telerik:GridBoundColumn UniqueName="Description" DataField="Description" HeaderText="<%$ Resources: FeatureDescription %>" /> <telerik:GridBoundColumn UniqueName="QualityDescr" DataField="QualityDescr" HeaderText="<%$ Resources:RpaControlCaptions, lblQuality %>" /> <telerik:GridBoundColumn UniqueName="ConditionDescr" DataField="ConditionDescr" HeaderText="<%$ Resources:RpaControlCaptions, lblCond %>" /> <telerik:GridBoundColumn UniqueName="EffYearBuilt" DataField="EffYearBuilt" HeaderText="<%$ Resources:RpaControlCaptions, lblYear %>" DataType="System.Int16" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" /> <telerik:GridBoundColumn UniqueName="FinalValue" DataField="FinalValue" HeaderText="<%$ Resources:RpaControlCaptions, lblValue %>" DataType="System.Decimal" DataFormatString="{0:C0}" HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" /> </Columns> </MasterTableView> </telerik:RadGrid> </div> </asp:Panel> </telerik:RadPageView> <telerik:RadPageView ID="pvSales" runat="server" CssClass="pageView"> </telerik:RadPageView> <telerik:RadPageView ID="pvExemptions" runat="server" CssClass="pageView"> </telerik:RadPageView> <telerik:RadPageView ID="pvNotes" runat="server" CssClass="pageView"> </telerik:RadPageView> </telerik:RadMultiPage> </telerik:RadPane> <telerik:RadPane ID="rpAppraisalDetailRight" runat="server" Height="100%" Width="22px" MinWidth="200" BackColor="#C2D0E0" Locked="True"> </telerik:RadPane> </telerik:RadSplitter></div>
