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