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

Radgrid Pagination not working when databinded from serverside

4 Answers 421 Views
Grid
This is a migrated thread and some comments may be shown as answers.
mahesh
Top achievements
Rank 1
mahesh asked on 03 Aug 2011, 09:14 AM
I have two radgrid , for the first radgrid i am binding the data from serverside , and for the second radgrid i am binding the data through sqldatasource from clientside.
 The radgrid2 for which i bind the data through clientside,pagination property works fine , and my grid gets refresh each time.
 But the major problem is when bind the radgrid from serverside my pagination property is not working,is their any property i have to set for pagination to work when i am binding the data from serverside, can any one please help to figure out the problem.

This is my aspx page code which contains the radgrid

   
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RadGridRefreshTest.aspx.cs" Inherits="RadGridTest.RadGridRefreshTest" enableEventValidation="false" %><br>    <br>    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br>    <br>    <html xmlns="http://www.w3.org/1999/xhtml"><br>    <head runat="server"><br>        <title></title><br>    </head><br>    <body><br>        <form id="form1" runat="server"><br>        <div><br>            <telerik:RadScriptManager ID="RadScriptManager1" runat="server" EnablePageMethods="true"><br>            </telerik:RadScriptManager><br>            <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="true"  PageSize="10" AllowCustomPaging="True" onpageindexchanged="RadGrid1PageIndexChanged" ><br>            <PagerStyle Mode="NextPrevAndNumeric"  /><br>            </telerik:RadGrid><br>    <br>            second grid<br>            <telerik:RadGrid ID="RadGrid2" runat="server" CellSpacing="0" <br>                DataSourceID="SqlDataSource" GridLines="None" <br>                onpageindexchanged="RadGrid2PageIndexChanged" ><br>    <MasterTableView AutoGenerateColumns="False" DataKeyNames="CustomerID" <br>                    DataSourceID="SqlDataSource" AllowPaging="true" PageSize="10" ><br>    <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings><br>    <br>    <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"><br>    <HeaderStyle Width="20px"></HeaderStyle><br>    </RowIndicatorColumn><br>    <br>    <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column"><br>    <HeaderStyle Width="20px"></HeaderStyle><br>    </ExpandCollapseColumn><br>    <br>        <Columns><br>            <telerik:GridBoundColumn DataField="CustomerID" <br>                FilterControlAltText="Filter CustomerID column" HeaderText="CustomerID" <br>                ReadOnly="True" SortExpression="CustomerID" UniqueName="CustomerID"><br>            </telerik:GridBoundColumn><br>            <telerik:GridBoundColumn DataField="CompanyName" <br>                FilterControlAltText="Filter CompanyName column" HeaderText="CompanyName" <br>                SortExpression="CompanyName" UniqueName="CompanyName"><br>            </telerik:GridBoundColumn><br>            <telerik:GridBoundColumn DataField="ContactName" <br>                FilterControlAltText="Filter ContactName column" HeaderText="ContactName" <br>                SortExpression="ContactName" UniqueName="ContactName"><br>            </telerik:GridBoundColumn><br>            <telerik:GridBoundColumn DataField="ContactTitle" <br>                FilterControlAltText="Filter ContactTitle column" HeaderText="ContactTitle" <br>                SortExpression="ContactTitle" UniqueName="ContactTitle"><br>            </telerik:GridBoundColumn><br>            <telerik:GridBoundColumn DataField="Address" <br>                FilterControlAltText="Filter Address column" HeaderText="Address" <br>                SortExpression="Address" UniqueName="Address"><br>            </telerik:GridBoundColumn><br>            <telerik:GridBoundColumn DataField="City" <br>                FilterControlAltText="Filter City column" HeaderText="City" <br>                SortExpression="City" UniqueName="City"><br>            </telerik:GridBoundColumn><br>            <telerik:GridBoundColumn DataField="Region" <br>                FilterControlAltText="Filter Region column" HeaderText="Region" <br>                SortExpression="Region" UniqueName="Region"><br>            </telerik:GridBoundColumn><br>            <telerik:GridBoundColumn DataField="PostalCode" <br>                FilterControlAltText="Filter PostalCode column" HeaderText="PostalCode" <br>                SortExpression="PostalCode" UniqueName="PostalCode"><br>            </telerik:GridBoundColumn><br>            <telerik:GridBoundColumn DataField="Country" <br>                FilterControlAltText="Filter Country column" HeaderText="Country" <br>                SortExpression="Country" UniqueName="Country"><br>            </telerik:GridBoundColumn><br>            <telerik:GridBoundColumn DataField="Phone" <br>                FilterControlAltText="Filter Phone column" HeaderText="Phone" <br>                SortExpression="Phone" UniqueName="Phone"><br>            </telerik:GridBoundColumn><br>            <telerik:GridBoundColumn DataField="Fax" <br>                FilterControlAltText="Filter Fax column" HeaderText="Fax" SortExpression="Fax" <br>                UniqueName="Fax"><br>            </telerik:GridBoundColumn><br>        </Columns><br>    <br>    <EditFormSettings><br>    <EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn><br>    </EditFormSettings><br>    </MasterTableView><br>    <br>    <FilterMenu EnableImageSprites="False"></FilterMenu><br>    <br>    <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"></HeaderContextMenu><br>            </telerik:RadGrid><br>            <asp:SqlDataSource ID="SqlDataSource" runat="server" <br>                ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString2 %>" <br>                SelectCommand="SELECT * FROM [Customers]"></asp:SqlDataSource><br>        </div><br>        </form><br>    </body><br>    </html>

 
This is the code behind file where i am writing the code for grid binding using datasource

   
using System;<br>    using System.Collections.Generic;<br>    using System.Linq;<br>    using System.Web;<br>    using System.Web.UI;<br>    using System.Web.UI.WebControls;<br>    using System.Data.Sql;<br>    using System.Data.SqlClient;<br>    using System.Data;<br>    using Telerik.Web.UI;<br>    using Telerik.Web.Data;<br>    <br>    <br>    namespace RadGridTest<br>    {<br>        public partial class RadGridRefreshTest : System.Web.UI.Page<br>        {<br>            protected void Page_Load(object sender, EventArgs e)<br>            {<br>                SqlConnection con = new SqlConnection();<br>                con.ConnectionString ="data source=ADMIN-PC1;uid=sa;password=sql;database=NorthWind";<br>                DataSet ds = new DataSet("CustOrders");<br>                SqlDataAdapter da1 = new SqlDataAdapter("SELECT * FROM Customers", con);<br>                da1.TableMappings.Add("Table", "Customers");<br>                da1.Fill(ds);<br>                RadGrid1.DataSource = ds;<br>                RadGrid1.DataBind();<br>            }<br>            protected void RadGrid1PageIndexChanged(object sender, Telerik.Web.UI.GridPageChangedEventArgs e)<br>            {<br>                int index = e.NewPageIndex;<br>                int current = RadGrid1.CurrentPageIndex;<br>            }<br>    <br>            protected void RadGrid2PageIndexChanged(object sender, Telerik.Web.UI.GridPageChangedEventArgs e)<br>            {<br>                int index = e.NewPageIndex;<br>                int current = RadGrid1.CurrentPageIndex;<br>            }<br>    }


 

4 Answers, 1 is accepted

Sort by
0
Accepted
Shinu
Top achievements
Rank 2
answered on 03 Aug 2011, 09:25 AM
Hello Mahesh,

This issue arises because you are using Simple data binding for the first RadGrid. In order to implement advanced features like paging, sorting etc Advanced data binding using NeedDataSource event is preferred. Check the following help documentation which explains more about this.
Advanced Data-binding (using NeedDataSource event).

Thanks,
Shinu.
0
mahesh
Top achievements
Rank 1
answered on 03 Aug 2011, 12:56 PM
Hi Shinu,
Thanks for the reply , my grid pagination is now working fine,But i have grid refresh problem ,after inserting some data through the Radwindow and closing the RadWindow,


I have a Radgrid in my aspx page which should automatically get refreshed after closing radwindow but i have some problem with ajax call , the datasource  which i am binding to grid is updated , but the grid is not being refreshed ,can you please help to figure out the problem. I am using northwind database .


This is my aspx page which contains the grid

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RadGridRefreshTest.aspx.cs" Inherits="RadGridTest.RadGridRefreshTest" enableEventValidation="false" %><br><br><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br><br><html xmlns="http://www.w3.org/1999/xhtml"><br><head runat="server"><br>    <title></title><br></head><br><body><br><form id="form1" runat="server"><br>    <div><br> <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"><br>                            <script type="text/javascript"><br>                              function ShowInsertForm() {<br>                                var sourcesystemfileid = 0;<br>                                window.radopen("RadInsertWindow.aspx", "UserListDialog");<br>                                return false;<br>                                 }<br>                            function refreshGrid() {<br>                                $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("Rebind");<br><br>                                 }<br>                           <br>                            function closeRadWindow() {<br>                                $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("RebindAndNavigate");<br>                               <br>                                <br>                            }<br>                          </script><br>   </telerik:RadCodeBlock><br>   <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest"<br>                        EnableAJAX="true"><br>                        <AjaxSettings><br>                            <telerik:AjaxSetting AjaxControlID="RadAjaxManager1"><br>                                <UpdatedControls><br>                                    <telerik:AjaxUpdatedControl ControlID="RadGrid1" /><br>                                </UpdatedControls><br>                            </telerik:AjaxSetting><br>                            <telerik:AjaxSetting AjaxControlID="RadGrid1"><br>                                <UpdatedControls><br>                                    <telerik:AjaxUpdatedControl ControlID="RadGrid1" /><br>                                </UpdatedControls><br>                            </telerik:AjaxSetting><br>                        </AjaxSettings><br>                    </telerik:RadAjaxManager><br>    <br><br>        <telerik:RadScriptManager ID="RadScriptManager1" runat="server" EnablePageMethods="true"><br>        </telerik:RadScriptManager><br>        <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="true"  PageSize="10"   OnNeedDataSource="RadGrid1_NeedDataSource"><br>        <PagerStyle Mode="NextPrevAndNumeric"  /><br>          <MasterTableView CommandItemDisplay="Bottom" PageSize="14" Width="100%" <br>                            AllowFilteringByColumn="True"><br>                  <CommandItemTemplate><br>                    <a href="#" onclick="return ShowInsertForm();">Add New Record</a><br>                </CommandItemTemplate><br>                </MasterTableView><br>        </telerik:RadGrid><br><br>           <telerik:RadWindowManager ID="RadWindowManager1" runat="server" EnableShadow="true"<br>                        Skin="Black"><br>                        <Windows><br>                            <telerik:RadWindow ID="UserListDialog" runat="server" Height="620px" Width="620px"<br>                                ReloadOnShow="true" ShowContentDuringLoad="false" Modal="true" OnClientClose="closeRadWindow" /><br>                        </Windows><br>     </telerik:RadWindowManager><br><br>    </div><br>    </form><br></body><br></html>

This is my code behind file for aspx page which contains the grid

using System;<br>using System.Collections.Generic;<br>using System.Linq;<br>using System.Web;<br>using System.Web.UI;<br>using System.Web.UI.WebControls;<br>using System.Data.Sql;<br>using System.Data.SqlClient;<br>using System.Data;<br>using Telerik.Web.UI;<br>using Telerik.Web.Data;<br><br><br>namespace RadGridTest<br>{<br>    public partial class RadGridRefreshTest : System.Web.UI.Page<br>    {<br>        protected void Page_Load(object sender, EventArgs e)<br>        {<br>           <br>        }<br>        protected void RadGrid2PageIndexChanged(object sender, Telerik.Web.UI.GridPageChangedEventArgs e)<br>        {<br>            int index = e.NewPageIndex;<br>            int current = RadGrid1.CurrentPageIndex;<br>        }<br><br>        public DataTable GetDataTable(string query)<br>        {<br>            String ConnString = "data source=ADMIN-PC1;uid=sa;password=sql;database=NorthWind"; <br>            SqlConnection conn = new SqlConnection(ConnString);<br>            SqlDataAdapter adapter = new SqlDataAdapter();<br>            adapter.SelectCommand = new SqlCommand(query, conn);<br><br>            DataTable myDataTable = new DataTable();<br><br>            conn.Open();<br>            try<br>            {<br>                adapter.Fill(myDataTable);<br>            }<br>            finally<br>            {<br>                conn.Close();<br>            }<br><br>            return myDataTable;<br>        }<br><br>        protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)<br>        {<br>            RadGrid1.DataSource = GetDataTable("SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, PostalCode FROM Customers");<br>        }<br><br>        protected void RadAjaxManager1_AjaxRequest(object sender, Telerik.Web.UI.AjaxRequestEventArgs e)<br>        {<br>            if (e.Argument == "Rebind")<br>            {<br>                RadGrid1.MasterTableView.SortExpressions.Clear();<br>                RadGrid1.MasterTableView.GroupByExpressions.Clear();<br>                RadGrid1.DataSource = GetDataTable("SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, PostalCode FROM Customers");<br>                RadGrid1.Rebind();<br>            }<br>            else if (e.Argument == "RebindAndNavigate")<br>            {<br>                RadGrid1.MasterTableView.SortExpressions.Clear();<br>                RadGrid1.MasterTableView.GroupByExpressions.Clear();<br>                RadGrid1.DataSource = GetDataTable("SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, PostalCode FROM Customers");<br>                RadGrid1.MasterTableView.CurrentPageIndex = RadGrid1.MasterTableView.PageCount - 1;<br>                RadGrid1.Rebind();<br>               <br>                <br>            }<br>        }<br><br>    }<br>}

This is the my rad window  code where i will be performing insertion operation to the northwind customer table,after sucessfull insertion Radgrid has to get updated but this functionality is not working .

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RadInsertWindow.aspx.cs" Inherits="RadGridTest.RadInsertWindow" %><br><br><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br><br><html xmlns="http://www.w3.org/1999/xhtml"><br><head runat="server"><br>    <title></title><br></head><br><body><br>    <form id="form1" runat="server"><br>     <div><br>        <br>              <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"><br>                  <script type="text/javascript"><br>                    <br>                   <br>                    function CloseAndRebind(args) {<br>                        GetRadWindow().BrowserWindow.refreshGrid(args);<br>                        GetRadWindow().close();<br>                    }<br><br>                    <br>                    function GetRadWindow() {<br>                        var oWindow = null;<br>                        if (window.radWindow) oWindow = window.radWindow; //Will work in Moz in all cases, including clasic dialog<br>                        else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow; //IE (and Moz as well)<br>                        return oWindow;<br>                    }<br>                   <br>                    function CancelEdit() {<br>                        GetRadWindow().close();<br>                    }<br>              </script><br>            </telerik:RadCodeBlock><br>          <asp:ScriptManager ID="ScriptManager1" runat="server"><br>            </asp:ScriptManager><br>         <br>       <telerik:RadFormDecorator ID="InsertRecordRadFormDecorator" runat="server" Skin="Black"<br>            DecoratedControls="All" /><br>          <asp:Label ID="Label1" runat="server" Text="CustomerId"></asp:Label><br>          <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br>          <br /><br>          <asp:Label ID="Label2" runat="server" Text="CompanyName"></asp:Label><br>          <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br>          <br /><br>          <asp:Label ID="Label3" runat="server" Text="ContactName"></asp:Label><br>          <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox><br>          <br /><br>          <asp:Label ID="Label4" runat="server" Text="ContactTitle"></asp:Label><br>          <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox><br>          <br /><br>          <asp:Button ID="Button1" runat="server" Text="Save" onclick="Button1_Click" /><br> <br>       <br>        <br>    </div><br>    </form><br></body><br></html>

This is the code behind file for the Rad insert window

using System;<br>using System.Collections.Generic;<br>using System.Linq;<br>using System.Web;<br>using System.Web.UI;<br>using System.Web.UI.WebControls;<br>using System.Data;<br>using System.Data.SqlClient;<br><br>namespace RadGridTest<br>{<br>    public partial class RadInsertWindow : System.Web.UI.Page<br>    {<br>        protected void Page_Load(object sender, EventArgs e)<br>        {<br><br>        }<br><br>        protected void Button1_Click(object sender, EventArgs e)<br>        {<br>            String ConnString = "data source=ADMIN-PC1;uid=sa;password=sql;database=NorthWind";<br>            SqlConnection conn = new SqlConnection(ConnString);<br>            conn.Open();<br>            string customerid=TextBox1.Text;<br>            string companyname=TextBox2.Text;<br>            string contactname=TextBox3.Text;<br>            string contacttitle= TextBox4.Text;<br>            SqlCommand insert=new SqlCommand("insert into Customers values('"+customerid+"','"+companyname+"','"+contactname+"','"+contacttitle+"')");<br>            int result= insert.ExecuteNonQuery();<br>            if (result == 1)<br>            {<br>                ClientScript.RegisterStartupScript(Page.GetType(), "mykey1", "CloseAndRebind();", true);<br>            }<br>            conn.Close();<br><br>        }<br>    }<br>}<br>


0
Maria Ilieva
Telerik team
answered on 08 Aug 2011, 12:53 PM
Hello Mahesh,

Please refer to the following online demo which presents the required functionality. Test the provided approach and verify of this helps.

All the best,
Maria Ilieva
the Telerik team

Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.

0
Maria Ilieva
Telerik team
answered on 08 Aug 2011, 12:53 PM
Hello Mahesh,

Please refer to the following online demo which presents the required functionality. Test the provided approach and verify of this helps.

All the best,
Maria Ilieva
the Telerik team

Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.

Tags
Grid
Asked by
mahesh
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
mahesh
Top achievements
Rank 1
Maria Ilieva
Telerik team
Share this question
or