Custom Paging In Datalist Control
CustomPaging.aspx
<%@ 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>
<asp:DataList ID="dtlEmp" runat="server">
<HeaderTemplate>
<table>
<tr>
<th>
ID
</th>
<th>
Name
</th>
<th>
DepID
</th>
<th>
Salary
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label ID="lblID" runat="server"
Text='<%# Bind("id") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblName" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblDepID" runat="server" Text='<%# Bind("depid") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblSalary" runat="server" Text='<%# Bind("Salary") %>'></asp:Label>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:DataList>
<table>
<tr>
<td>
<a href="Default.aspx#BookMark" id="First" onserverclick="ShowFirstPage"
runat="server">
<img src="firstpage.gif" alt="" />
</a>
</td>
<td>
<a href="Default.aspx#BookMark" id="Prev" onserverclick="ShowPrevPage"
runat="server">
<img src="prevpage.gif" alt="" />
</a>
</td>
<td>
<a href="Default.aspx#BookMark" id="Next" onserverclick="ShowNextPage"
runat="server">
<img src="nextpage.gif" alt="" />
</a>
</td>
<td>
<a href="Default.aspx#BookMark" id="Last" onserverclick="ShowLastPage"
runat="server">
<img src="lastpage.gif" alt="" />
</a>
</td>
</tr>
</table>
<asp:Label ID="lblCurrentIndex" runat="server" Text="0"></asp:Label>
<asp:Label ID="lblPagesize" runat="server" Text="5"></asp:Label>
<asp:Label ID="lblRecordCount" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>
CustomPaging.aspx.cs
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
{
SqlConnection objcn;
DataSet objDs;
SqlDataAdapter objAd;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BindData();
}
public void BindData()
{
string Query="select * from tblEmp";
objcn = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"]
.ConnectionString);
objAd = new SqlDataAdapter(Query, objcn);
objDs = new DataSet();
if (!IsPostBack)
{
objAd.Fill(objDs);
lblRecordCount.Text=(objDs.Tables[0].Rows.Count).ToString();
//objDs=null;
//objDs=new DataSet();
}
objAd.Fill(objDs,Convert.ToInt32(lblCurrentIndex.Text),Convert.ToInt32
(lblPagesize.Text),"tblEmp");
dtlEmp.DataSource = objDs.Tables["tblEmp"].DefaultView;
dtlEmp.DataBind();
}
public void ShowFirstPage(object sender, EventArgs e)
{
lblCurrentIndex.Text = "0";
BindData();
}
public void ShowPrevPage(object sender, EventArgs e)
{
lblCurrentIndex.Text=((Convert.ToInt32(lblCurrentIndex.Text))-Convert.
ToInt32(lblPagesize.Text)).ToString();
if(Convert.ToInt32(lblCurrentIndex.Text)<0)
{
lblCurrentIndex.Text="0";
}
BindData();
}
public void ShowNextPage(object sender, EventArgs e)
{
if (Convert.ToInt32(lblCurrentIndex.Text) +
Convert.ToInt32(lblPagesize.Text) < Convert.ToInt32(lblRecordCount.Text))
{
lblCurrentIndex.Text = (Convert.ToInt32(lblCurrentIndex.Text)
+ Convert.ToInt32(lblPagesize.Text)).ToString();
}
BindData();
}
public void ShowLastPage(object sender, EventArgs e)
{
int Mod = Convert.ToInt32(lblRecordCount.Text) /
Convert.ToInt32(lblPagesize.Text);
if (Mod > 0)
{
lblCurrentIndex.Text = (Convert.ToInt32(lblRecordCount.Text) -
Mod).ToString();
}
else
{
lblCurrentIndex.Text=(Convert.ToInt32(lblRecordCount.Text)-
Convert.ToInt32(lblPagesize.Text)).ToString();
}
BindData();
}
}