Paging in datalist using PagedDataSource class

In this blog we will know how to do Paging in datalist using PagedDataSource class.
Drag and drop a DataList control, one label, and two buttons controls to the WebPages.

Table structure

tablestructure.gif

Program

<%@ 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:DataList ID="dl1" 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:DataList>
   </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.vb 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)
       
{
           
binddatalist();
       
}
   
}
   
private void binddatalist()
   
{
       
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;
       
dl1.DataSource = Pds1;
       
dl1.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;
       
binddatalist();
   
}
   
protected void btnNext_Click(object sender, EventArgs e)
   
{
       
CurrentPage += 1;  
binddatalist();
     }
}

Output

tablestructure1.gif

Thanks for reading.