Paging in datalist using PagedDataSource class in VB.NET

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

img1.gif

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: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

Imports System.Data
Imports
System.Data.SqlClient
Partial
Class _Default
    Inherits System.Web.UI.Page
    Dim strConnString As String = System.Configuration.ConfigurationManager.ConnectionStrings.Item("ConnectionString").ToString()
    Dim con As New SqlConnection(strConnString)
    Dim str As String
    Dim com As SqlCommand
    Dim sqlda As SqlDataAdapter
    Dim ds As DataSet
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            binddatalist()
        End If
    End Sub
   Private Sub binddatalist()
        con.Open()
        Str = "select * from employee"
        com = New SqlCommand(Str, con)
        sqlda = New SqlDataAdapter(com)
        ds = New DataSet
        sqlda.Fill(ds, "employee")
        Dim Pds1 As 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 = Not Pds1.IsFirstPage
        btnNext.Enabled = Not Pds1.IsLastPage
        dl1.DataSource = Pds1
        dl1.DataBind()
        con.Close()
    End Sub
    Public Property CurrentPage() As Integer
        Get
            Dim s1 As Object = Me.ViewState("CurrentPage")
            If s1 Is Nothing Then
                Return 0
            Else
                Return CInt(s1)
            End If
        End Get

        Set(ByVal value As Integer)
            Me.ViewState("CurrentPage") = value
        End Set
    End Property

    Protected Sub btnPrevious_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
btnPrevious.Click
        CurrentPage -= 1
        binddatalist()
    End Sub
    Protected Sub btnNext_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
btnNext.Click
        CurrentPage += 1
        binddatalist()
    End Sub

End
Class

Output

img2.gif

Thanks for reading