Blog

Paging in repeater using PagedDataSource class

By Satyapriya Nayak Sep 12, 2011
In this article we will know how to do Paging in repeater using PagedDataSource class.
Drag and drop a Repeater control, one label, and two buttons controls to the WebPages.
 
Table structure

Table structure in sql
 
Program
 
Default.aspx code
 

 
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %> 
 
<!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>Untitled Page</title>
 
</head>
 <
body>
 
    <form id="form1" runat="server">
 
    <div>
 
    <table border="1">
 
      <asp:repeater id="repeater1" runat="server">
 
      <HeaderTemplate>
 
      <font color="red"><b>Employee Details</b></font>
 
     
       </HeaderTemplate>
 
         <itemtemplate>
 
         <tr>
 
         <td><font color="Green"><b>ID</b></font></td>
 
         <td><font color="Green"><b>NAME</b></font></td>
 
         <td><font color="Green"><b>SALARY</b></font></td>
 
         <td><font color="Green"><b>ADDRESS</b></font></td>
 
         <td><font color="Green"><b>DESIGNATION</b></font></td>
 
        </tr>
 
            <tr>
 
               <td>  <font color="#ff8000"><b><%#Eval("empid")%></b></font></td>
 
               <td>  <font color="Fuchsia"><b><%#Eval("empname")%></b></font></td>
 
               <td>  <font color="#663300"><b><%#Eval("empsal")%></b></font></td>
 
               <td>  <font color="Purple"><b><%#Eval("empadd")%></b></font></td>
 
               <td>  <font color="#808040"><b><%#Eval("empdes")%></b></font></td>
 
            </tr>
 
         </itemtemplate>
 
      </asp:repeater>
 
   </table>
 
   <table width="100%" border="0">
 
      <tr>
 
         <td>  <asp:label id="lbl1" runat="server" BackColor="Yellow" BorderColor="Yellow"
                  Font-Bold="True" ForeColor="#FF3300"></asp:label></td>
 
      </tr>
 
      <tr>
 
       <td>  <asp:button id="btnPrevious" runat="server" text="Previous" Width="60px"
                onclick="btnPrevious_Click"></asp:button>
 
             <asp:button id="btnNext" runat="server" text="Next" Width="60px"
                onclick="btnNext_Click"></asp:button></td>
 
      </tr>
 
   </table>
 
    </div>
 
    </form>
 
</body>
 </
html>
 
Default.aspx.cs code
 

 
using System;
 
using System.Configuration;
 
using System.Data;
 
using System.Linq;
 
using System.Web;
 
using System.Web.Security;
 
using System.Web.UI;
 
using System.Web.UI.HtmlControls;
 
using System.Web.UI.WebControls;
 
using System.Web.UI.WebControls.WebParts;
 
using System.Xml.Linq;
 
using System.Data.SqlClient;
 
public partial class _Default : System.Web.UI.Page
 
{
     string strConnString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
     string str;
     SqlCommand com;
     SqlDataAdapter sqlda;
     DataSet ds;
     protected void Page_Load(object sender, EventArgs e)
     {
         if (!IsPostBack)
         {
             bindrepeater();
         }
     }
     private void bindrepeater()
     {
         SqlConnection con = new SqlConnection(strConnString);
         con.Open();
         str = "select * from employee";
         com = new SqlCommand(str, con);
         sqlda = new SqlDataAdapter(com);
         ds = new DataSet();
         sqlda.Fill(ds, "employee");
         PagedDataSource Pds1 = new PagedDataSource();
         Pds1.DataSource = ds.Tables[0].DefaultView;
         Pds1.AllowPaging = true;
         Pds1.PageSize = 3;
         Pds1.CurrentPageIndex = CurrentPage;
         lbl1.Text = "Showing Page: " + (CurrentPage + 1).ToString() + " of " + Pds1.PageCount.ToString();
         btnPrevious.Enabled = !Pds1.IsFirstPage;
         btnNext.Enabled = !Pds1.IsLastPage;
         repeater1.DataSource = Pds1;
         repeater1.DataBind();
         con.Close();
     }
     public int CurrentPage
     {
         get
 
        {
             object s1 = this.ViewState["CurrentPage"];
             if (s1 == null)
             {
                 return 0;
             }
             else
 
            {
                 return Convert.ToInt32(s1);
             }
         }
  
         set { this.ViewState["CurrentPage"] = value; }
     }
     protected void btnPrevious_Click(object sender, EventArgs e)
     {
         CurrentPage -= 1;
         bindrepeater();
     }
     protected void btnNext_Click(object sender, EventArgs e)
     {
         CurrentPage += 1;
         bindrepeater();
     }
 }

 
Output

Paging in asp.net
 
Thanks for reading