DataList Paging in ASP.NET
In this tutorial i will explain you how to do paging on ASP.NET DATALIST component.Here i am using SQL Server as Backend.By Default Paging is not a part of DataList.You have to Implement your own function for it.When we want to add a paging feature to a DataList or Repeater control, then there is not an AllowPaging property. We used PagedDataSource to add a paging feature in DataList or Repeater controls. This is very useful info and might help you in your projects.
Design View:-
01 | <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> |
10 | < form id = "form1" runat = "server" > |
12 | < table width = "900px" align = "center" > |
15 | < asp:DataList ID = "DataList1" runat = "server" > |
18 | < tr style = "background-color:Blue;height:30px;color:White;font-size:14px" > |
19 | < td width = "150px" >Ename</ td > |
20 | < td width = "150px" >Basic</ td > |
21 | < td width = "150px" >Dept No.</ td > |
22 | < td width = "150px" >Job</ td > |
23 | < td width = "150px" >Communication</ td > |
30 | < td width = "150px" ><%# Eval("ename")%></ td > |
31 | < td width = "150px" ><%# Eval("basic")%></ td > |
32 | < td width = "150px" ><%# Eval("deptno")%></ td > |
33 | < td width = "150px" ><%# Eval("job")%></ td > |
34 | < td width = "150px" ><%# Eval("comm")%></ td > |
43 | < table id = "tblPaging" runat = "server" > |
45 | < td style = "padding-right: 7px" valign = "top" > |
46 | < asp:LinkButton ID = "lnkbtnPrevious" runat = "server" OnClick = "lnkbtnPrevious_Click" >Previous</ asp:LinkButton > |
49 | < asp:DataList ID = "dlPaging" runat = "server" OnItemCommand = "dlPaging_ItemCommand" OnItemDataBound = "dlPaging_ItemDataBound" |
50 | RepeatDirection = "Horizontal" > |
52 | < asp:LinkButton ID = "lnkbtnPaging" runat = "server" CommandArgument='<%# Eval("PageIndex") %>' |
53 | CommandName="lnkbtnPaging" Text='<%# Eval("PageText") %>'></ asp:LinkButton > |
57 | < td style = "padding-left: 7px" valign = "top" > |
58 | < asp:LinkButton ID = "lnkbtnNext" runat = "server" OnClick = "lnkbtnNext_Click" >Next</ asp:LinkButton > |
Code View:-
002 | using System.Collections.Generic; |
006 | using System.Web.UI.WebControls; |
008 | using System.Data.SqlClient; |
009 | using System.Configuration; |
011 | public partial class _Default : System.Web.UI.Page |
013 | PagedDataSource pds = new PagedDataSource(); |
014 | protected void Page_Load( object sender, EventArgs e) |
020 | protected void lnkbtnPrevious_Click( object sender, EventArgs e) |
025 | protected void lnkbtnNext_Click( object sender, EventArgs e) |
030 | protected void dlPaging_ItemCommand( object source, DataListCommandEventArgs e) |
032 | if (e.CommandName.Equals( "lnkbtnPaging" )) |
034 | CurrentPage = Convert.ToInt16(e.CommandArgument.ToString()); |
038 | protected void dlPaging_ItemDataBound( object sender, DataListItemEventArgs e) |
040 | LinkButton lnkbtnPage = (LinkButton)e.Item.FindControl( "lnkbtnPaging" ); |
041 | if (lnkbtnPage.CommandArgument.ToString() == CurrentPage.ToString()) |
043 | lnkbtnPage.Enabled = false ; |
044 | lnkbtnPage.Font.Bold = true ; |
048 | public int CurrentPage |
052 | if ( this .ViewState[ "CurrentPage" ] == null ) |
055 | return Convert.ToInt16( this .ViewState[ "CurrentPage" ].ToString()); |
059 | this .ViewState[ "CurrentPage" ] = value; |
062 | private void doPaging() |
064 | DataTable dt = new DataTable(); |
065 | dt.Columns.Add( "PageIndex" ); |
066 | dt.Columns.Add( "PageText" ); |
067 | for ( int i = 0; i < pds.PageCount; i++) |
069 | DataRow dr = dt.NewRow(); |
074 | dlPaging.DataSource = dt; |
080 | string connn = ConfigurationManager.ConnectionStrings[ "conn" ].ConnectionString; |
081 | SqlConnection con = new SqlConnection(connn); |
083 | string str = "select empno,ename,basic,deptno,job,comm from emp" ; |
084 | SqlCommand cmd = new SqlCommand(str, con); |
085 | SqlDataAdapter da = new SqlDataAdapter(cmd); |
086 | DataSet ds = new DataSet(); |
088 | DataList1.DataSource = ds; |
089 | DataList1.DataBind(); |
090 | pds.DataSource = ds.Tables[0].DefaultView; |
091 | pds.AllowPaging = true ; |
094 | pds.CurrentPageIndex = CurrentPage; |
095 | lnkbtnNext.Enabled = !pds.IsLastPage; |
096 | lnkbtnPrevious.Enabled = !pds.IsFirstPage; |
097 | DataList1.DataSource = pds; |
098 | DataList1.DataBind(); |

