DataList 使用 PagedDataSource 分页

  1. <asp:DataList ID="DataList1" runat="server" BorderStyle="None" Width="250px">
  2. <HeaderTemplate>
  3.     <table border="1" cellpadding="0" cellspacing="0" style="border-collapse:collapse" width="100%">
  4.         <tr>
  5.             <td width="25%" height="25">序列</td>
  6.             <td width="25%">ID</td>
  7.             <td width="25%">Title</td>
  8.             <td width="25%">LogContext</td>
  9.         </tr>
  10. </HeaderTemplate>
  11. <ItemTemplate>
  12.     <tr>
  13.         <td width="25%" height="25"><%= ListIndex++ %></td>
  14.         <td>Id<%# Eval("id") %></td>
  15.         <td width="25%"><%# Eval("title") %></td>
  16.         <td width="25%"><%# Eval("logContext") %></td>
  17.     </tr>
  18. </ItemTemplate>
  19. <FooterTemplate>
  20.     </table>
  21. </FooterTemplate>
  22. </asp:DataList>      
  23. <asp:Label ID="lblPageIndex" runat="server" />
  24. <asp:Button ID="btnPre" runat="server" OnClick="btnPre_Click" Text="上一页" />
  25. <asp:Button ID="btnNext" runat="server" OnClick="btnNext_Click" Text="下一页" />
  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Web;
  5. using System.Web.Security;
  6. using System.Web.UI;
  7. using System.Web.UI.WebControls;
  8. using System.Web.UI.WebControls.WebParts;
  9. using System.Web.UI.HtmlControls;
  10. using System.Collections.Generic;
  11. using System.Data.OleDb;
  12. public partial class _Default : System.Web.UI.Page 
  13. {
  14.     PagedDataSource pdsDl;
  15.     const int pageSize = 5;
  16.     protected void Page_Load(object sender, EventArgs e)
  17.     {
  18.         if (!IsPostBack)
  19.         {
  20.             btnPre.Enabled = false;
  21.             ViewState["listIndex"] = 1;//记录行号
  22.             ViewState["pager"] = 0;//记录当前页数
  23.             DataToBind();
  24.         }
  25.     }
  26.     private void DataToBind()
  27.     {
  28.         pdsDl = new PagedDataSource();
  29.         pdsDl.DataSource = GridViewSource();
  30.         pdsDl.AllowPaging = true;
  31.         pdsDl.PageSize = pageSize;
  32.         pdsDl.CurrentPageIndex = Pager;
  33.         lblPageIndex.Text = "第" + (Pager + 1) + "页" + "  共" + pdsDl.PageCount + "页";
  34.         DataList1.DataSource = pdsDl;
  35.         DataList1.DataBind();
  36.     }
  37.     public int ListIndex
  38.     {
  39.         get { return (int)ViewState["listIndex"]; }
  40.         set { ViewState["listIndex"] = value; }
  41.     }
  42.     public int Pager
  43.     {
  44.         get { return (int)ViewState["pager"]; }
  45.         set { ViewState["pager"] = value; }
  46.     }
  47.     private List<Log> GridViewSource()
  48.     {
  49.         List<Log> logs = new List<Log>();
  50.         for (int i = 1; i < 16; i++)
  51.         {
  52.             Log log = new Log();
  53.             log.Id = i;
  54.             log.Title = "Title" + i;
  55.             log.LogContext = "LogContext" + i;
  56.             logs.Add(log);
  57.         }
  58.         return logs;
  59.     }
  60.     public class Log
  61.     {
  62.         private int id;
  63.         public int Id
  64.         {
  65.             get { return id; }
  66.             set { id = value; }
  67.         }
  68.         private string title;
  69.         public string Title
  70.         {
  71.             get { return title; }
  72.             set { title = value; }
  73.         }
  74.         private string logContext;
  75.         public string LogContext
  76.         {
  77.             get { return logContext; }
  78.             set { logContext = value; }
  79.         }
  80.     }
  81.     protected void btnNext_Click(object sender, EventArgs e)
  82.     {
  83.         btnPre.Enabled = true;
  84.         DataToBind();
  85.         Pager++;
  86.         if (Pager == pdsDl.PageCount - 1)
  87.         {
  88.             btnNext.Enabled = false;
  89.         }
  90.         //每翻一页行号的初始值加上一个一面呈现的行数
  91.         ListIndex = ListIndex + pageSize;
  92.         DataToBind();
  93.     }
  94.     protected void btnPre_Click(object sender, EventArgs e)
  95.     {
  96.         btnNext.Enabled = true;
  97.         DataToBind();
  98.         Pager--;
  99.         if (Pager == 0)
  100.         {
  101.             btnPre.Enabled = false;
  102.         }
  103.         ListIndex = ListIndex - pageSize;
  104.         DataToBind();
  105.     }
  106. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值