DataList分页的完整代码

.cs 代码

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
     PageSize = 10;
     sql="select * from products order by all_time desc ";
     if(!Page.IsPostBack)
     {
     //计算总共有多少记录 
      RecordCount = CalculateRecord();
     //计算总共有多少页
    //取整 
      PageCount = RecordCount/PageSize; 
      if (RecordCount%PageSize > 0) 
      PageCount = PageCount + 1; 
      lblPageCount.Text = PageCount.ToString(); 
      lblRecordCount.Text = RecordCount.ToString(); 
      ViewState["PageCount"] = PageCount; 
      CurrentPage = 0; 
      ViewState["PageIndex"] = 0; 
      //绑定 
      ListBind();

      }
}
public int CalculateRecord() 

 int intCount; 
 string strCount = "select count(*) as co from products";
 SqlConnection Con=new SqlConnection(data.constr);
 SqlCommand addCommand=new SqlCommand(strCount,Con);
 addCommand.Connection.Open();
 SqlDataReader dr;
 dr=addCommand.ExecuteReader();
 if(dr.Read()) 
 { 
    intCount = Int32.Parse(dr["co"].ToString()); 
 } 
 else 
 { 
    intCount = 0; 
 } 
    dr.Close(); 
    return intCount; 
 } 

ICollection CreateSource() 

 int StartIndex; 
 //设定导入的起终地址 
 StartIndex = CurrentPage*PageSize; 
 string strSel = "select * from products";
 SqlConnection Con=new SqlConnection(data.constr);
 DataSet ds = new DataSet(); 
 SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,Con); 
 MyAdapter.Fill(ds,StartIndex,PageSize,"products"); 
 return ds.Tables["products"].DefaultView; 

public void ListBind() 

 dl1.DataSource = CreateSource(); 
 dl1.DataBind(); 
 lbnNextPage.Enabled = true; 
 lbnPrevPage.Enabled = true; 
 if(PageCount==0) 
 { 
  lblCurrentPage.Text = "0"; 
  lbnNextPage.Enabled = false; 
  lbnPrevPage.Enabled = false; 
 } 
 else 
 { 
  if(CurrentPage==(PageCount-1)) lbnNextPage.Enabled = false; 
  if(CurrentPage==0) lbnPrevPage.Enabled = false; 
  lblCurrentPage.Text = (CurrentPage+1).ToString(); 
 } 

public void Page_OnClick(Object sender,CommandEventArgs e) 

 CurrentPage = (int)ViewState["PageIndex"]; 
 PageCount = (int)ViewState["PageCount"]; 
 string cmd = e.CommandName; 
 //判断cmd,以判定翻页方向 
 switch(cmd) 
 { 
  case "next": 
  if(CurrentPage<(PageCount-1)) CurrentPage++; 
  break; 
  case "prev": 
  if(CurrentPage>0) CurrentPage--; 
  break;
  case "first":
  CurrentPage=0;
  break;
  case "last":
                  CurrentPage=PageCount-1;
  break;
 } 

 ViewState["PageIndex"] = CurrentPage; 

 ListBind(); 


HTML 部分:
<TABLE id="Table2" style="Z-INDEX: 102; LEFT: 128px; WIDTH: 648px; POSITION: absolute; TOP: 432px; HEIGHT: 27px"cellSpacing="1" cellPadding="1" width="648" border="1">
<TR>
<TD><FONT face="宋体">共<asp:label id="lblRecordCount" runat="server">Label</asp:label>条记录&nbsp; 共<asp:label id="lblPageCount" runat="server">Label</asp:label>页 当前第<asp:label id="lblCurrentPage" runat="server">Label</asp:label>页&nbsp;<asp:LinkButton id="lbnFirstPage" runat="server" OnCommand="Page_OnClick" CommandName="first">首页</asp:LinkButton>&nbsp;<asp:linkbuttonid="lbnPrevPage"runat="server"OnCommand="Page_OnClick" CommandName="prev">上一页</asp:linkbutton>&nbsp;&nbsp;<asp:linkbutton id="lbnNextPage" runat="server" OnCommand="Page_OnClick" CommandName="next">下一页</asp:linkbutton>&nbsp;
<asp:LinkButton id="lbnLastPage" runat="server" OnCommand="Page_OnClick" CommandName="last">尾页</asp:LinkButton></FONT></TD></TR></TABLE>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值