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