<%@ Page Language="C#" AutoEventWireup="true" %> <%@ Import Namespace="System.Data" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>How to Change the TotalRowCount ...</title> </head> <body> <form id="form1" runat="server"> <script runat="server" language="c#"> protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.RadGrid1.DataSource = DataPage(0); this.RadGrid1.DataBind(); } } public DataRow[] DataPage(int PageIndex) { string sql = string.Empty; switch (this.RadComboBox1.SelectedValue) { case "2": sql = "pkID >= " + (PageIndex * 5 + 1) + " AND pkID <= " + (PageIndex * 5 + 5) + ""; return dt2().Select(sql); default: sql = "pkID >= " + (PageIndex * 5 + 1) + " AND pkID <= " + (PageIndex * 5 + 5) + ""; return dt1().Select(sql); } } protected void RadComboBox1_SelectedIndexChanged(object sender, Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs e) { this.RadGrid1.DataSource = DataPage(this.RadDataPager1.CurrentPageIndex); this.RadGrid1.DataBind(); } protected void RadDataPager1_PageIndexChanged(object sender, RadDataPagerPageIndexChangeEventArgs e) { this.RadGrid1.DataSource = DataPage(e.NewPageIndex); this.RadGrid1.DataBind(); } protected void RadDataPager1_TotalRowCountRequest(object sender, RadDataPagerTotalRowCountRequestEventArgs e) { this.RadDataPager1.TabIndex = 1; switch (this.RadComboBox1.SelectedValue) { case "1": e.TotalRowCount = dt1().Rows.Count; break; case "2": e.TotalRowCount = dt2().Rows.Count; break; } } public static DataTable dt1() { DataTable table = new DataTable(); table.Columns.Add("pkID", typeof(Int32)); table.Columns.Add("ParentID", typeof(Int32)); table.Columns.Add("Name", typeof(String)); table.Columns.Add("Text", typeof(String)); table.Rows.Add(new object[] { 1, 1, "testName1", "testText1" }); table.Rows.Add(new object[] { 2, 1, "testName2", "testText2" }); table.Rows.Add(new object[] { 3, 1, "testName3", "testText3" }); table.Rows.Add(new object[] { 4, 1, "testName4", "testText4" }); table.Rows.Add(new object[] { 5, 1, "testName5", "testText5" }); table.Rows.Add(new object[] { 6, 1, "testName6", "testText6" }); table.Rows.Add(new object[] { 7, 1, "testName7", "testText7" }); table.Rows.Add(new object[] { 8, 1, "testName8", "testText8" }); table.Rows.Add(new object[] { 9, 1, "testName9", "testText9" }); table.Rows.Add(new object[] { 10, 1, "testName10", "testText10" }); table.Rows.Add(new object[] { 11, 1, "testName11", "testText11" }); table.Rows.Add(new object[] { 12, 1, "testName12", "testText12" }); return table; } public static DataTable dt2() { DataTable table = new DataTable(); table.Columns.Add("pkID", typeof(Int32)); table.Columns.Add("Name", typeof(String)); table.Rows.Add(new object[] { 1, "C" }); table.Rows.Add(new object[] { 2, "C++" }); table.Rows.Add(new object[] { 3, "C#" }); table.Rows.Add(new object[] { 4, "Java" }); table.Rows.Add(new object[] { 5, "F++" }); table.Rows.Add(new object[] { 6, "Z++" }); return table; } </script> <telerik:RadScriptManager ID="RadScriptManager1" runat="server" /> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadComboBox1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadComboBox1" /> <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> <telerik:AjaxUpdatedControl ControlID="RadDataPager1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadDataPager1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadDataPager1" /> <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadComboBox ID="RadComboBox1" Runat="server" AutoPostBack="true" onselectedindexchanged="RadComboBox1_SelectedIndexChanged"> <Items> <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem1" Value="1" Selected="true" /> <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem2" Value="2" /> </Items> </telerik:RadComboBox> <telerik:RadGrid ID="RadGrid1" runat="server" PageSize="5"> </telerik:RadGrid> <telerik:RadDataPager ID="RadDataPager1" runat="server" PageSize="5" ontotalrowcountrequest="RadDataPager1_TotalRowCountRequest" onpageindexchanged="RadDataPager1_PageIndexChanged"> <Fields> <telerik:RadDataPagerButtonField FieldType="NextLast" HorizontalPosition="RightFloat" /> <telerik:RadDataPagerButtonField FieldType="Numeric" PageButtonCount="10" HorizontalPosition="RightFloat" /> <telerik:RadDataPagerButtonField FieldType="FirstPrev" HorizontalPosition="RightFloat" /> <telerik:RadDataPagerGoToPageField CurrentPageText="" TotalPageText="/" TextBoxWidth="38" SubmitButtonText="Go" HorizontalPosition="RightFloat" /> </Fields> </telerik:RadDataPager> </form> </body> </html>this web application is correctly. just when i change RadComboBox Controls Item,
the TotalRowCount cannot be changed. how can i do ?
e.g.:
when the page load, default RadComboBox Item's Value is 1. then the current DataTable is dt1, the table's rows number is 12.
when i change RadComboBox to item 2. it's Value is 2, the current DataTable is dt2. the table's rows number is 6.
but the RadDataPager's TotalRowCount still keep old value: 12 rows.
thanks.