自己写的分页代码---简洁实用

效果图如下:


前台代码:

<% @ Page Language = " C# "  AutoEventWireup = " true "  CodeFile = " 01.aspx.cs "  Inherits = " _01 "   %>

<! 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 ></ title >
    
< link  href ="css/css.css"  rel ="stylesheet"  type ="text/css"   />
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div >
        
< asp:Repeater  ID ="rptTest"  runat ="server" >
            
< HeaderTemplate >< table  class ="border" ></ HeaderTemplate >
            
< ItemTemplate >< tr >< td  class ="td" > <% # Eval ( " id " ) %> </ td >< td  class ="td" > <% # Eval ( " title " ) %> </ td >< td  class ="td" > <% # Eval ( " usercode " ) %> </ td ></ tr ></ ItemTemplate >
            
< FooterTemplate ></ table ></ FooterTemplate >
        
</ asp:Repeater >
    
</ div >
     
< br  />
    
< div  id ="wayduPager" >
          第
< asp:Label  ID ="lblPageIndex"  runat ="server"  Text ="1"  ForeColor ="Red" ></ asp:Label > 页/总 < asp:Label  ID ="lblMaxPage"  runat ="server"  Text ="1"  ForeColor ="Red" ></ asp:Label > &nbsp; | &nbsp; 每页 < asp:Label  ID ="lblPageSize"  runat ="server"  Text ="1"  ForeColor ="Red" ></ asp:Label > &nbsp;&nbsp; < asp:Label  ID ="lblTotalCount"  runat ="server"  Text ="1"  ForeColor ="Red" ></ asp:Label > &nbsp; | &nbsp; < asp:LinkButton  ID ="lnkFirst"  OnClick ="lnkFirst_Click"  runat ="server" > 首 页 </ asp:LinkButton > &nbsp; | &nbsp; < asp:LinkButton  ID ="lnkPrev"  OnClick ="lnkPrev_Click"  runat ="server" > 上一页 </ asp:LinkButton > &nbsp; | &nbsp; < asp:LinkButton  ID ="lnkNext"  OnClick ="lnkNext_Click"  runat ="server" > 下一页 </ asp:LinkButton > &nbsp; | &nbsp; < asp:LinkButton  ID ="lnkLast"  OnClick ="lnkLast_Click"  runat ="server" > 尾 页 </ asp:LinkButton > &nbsp; | &nbsp; 转到:第 < asp:DropDownList  ID ="ddlselectPage"  runat ="server"  AutoPostBack ="True"  OnSelectedIndexChanged ="ddlselectPage_SelectedIndexChanged" ></ asp:DropDownList >
    
</ div >
    
</ form >
</ body >
</ html >

后台代码:

using  System;
using  System.Collections.Generic;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;

using  System.Data;

public   partial   class  _01 : System.Web.UI.Page
{

    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        
if ( ! IsPostBack)
        {
            BindList();
        }
    }

    
#region  绑定数据源
    
private   void  BindList()
    {
        
string  sql  =   "  select id,title,memberid,(select usercode from t_mem_memberinfo where memberid=a.memberid) as usercode from t_blog a order by id desc  " ;
        DataSet ds 
=  sqlDatabase.getDS(sql);
        
// -----------------------分页代码----------------------- //
        PagedDataSource Pds  =   new  PagedDataSource();
        Pds.DataSource 
=  ds.Tables[ 0 ].DefaultView;

        Pds.AllowPaging 
=   true // 开启分页
        Pds.PageSize  =   15 // 分页

        
int  index  =   int .Parse(lblPageIndex.Text);  // 当前页数
         int  PageSize  =  Pds.PageSize;               // 每页记录数
         int  TotalRecords  =  Pds.DataSourceCount;    // 总记录数
         int  TotalPages  =  TotalRecords  /  PageSize; // 总页数(总记录数除以每页的记录数) 
         int  ModePages  =  TotalRecords  %  PageSize; // 得到取模的余数(总记录数取模每页的记录数) 

        
if  (ModePages  >   0 ) // 如果取模数不等于0,则把总页数加1 
        {
            TotalPages 
+=   1 ;
        }
        
if  (TotalPages  ==   0 )
        {
            TotalPages 
=   1 ;
        }
        
this .ViewState[ " TotalPages " =  TotalPages;     // 保存"总页数"到页面视图中

        lblMaxPage.Text 
=  TotalPages.ToString();       // 显示页面上的总页数 
        lblTotalCount.Text  =  TotalRecords.ToString();  // 显示页面上的总记录数 
        lblPageSize.Text  =  Pds.PageSize.ToString();    // 每页记录数
        Pds.CurrentPageIndex  =  index  -   1 ;
        
// 若是"第一页"
         if  (index  ==   1 )
        {
            lnkFirst.Enabled 
=   false ;
            lnkPrev.Enabled 
=   false ;
            
if  (TotalPages  >   1 )
            {
                lnkNext.Enabled 
=   true ;
                lnkLast.Enabled 
=   true ;
            }
            
else
            {
                lnkNext.Enabled 
=   false ;
                lnkLast.Enabled 
=   false ;
            }
        }
        
else
        {
            lnkFirst.Enabled 
=   true ;
            lnkPrev.Enabled 
=   true ;
            
// 若是"尾页"
             if  (index  ==  TotalPages)
            {
                lnkNext.Enabled 
=   false ;
                lnkLast.Enabled 
=   false ;
            }
            
else
            {
                lnkNext.Enabled 
=   true ;
                lnkLast.Enabled 
=   true ;
            }
        }

        ddlselectPage.Items.Clear(); 
// 清除防止累加
         for  ( int  i  =   1 ; i  <=  TotalPages; i ++ )
        {
            ddlselectPage.Items.Add(i.ToString());
        }
        ddlselectPage.Items.FindByText(index.ToString()).Selected 
=   true // 把当前页显示在列表框的第一个

        
this .rptTest.DataSource  =  Pds;
        
this .rptTest.DataBind();
    }
    
#endregion

    
#region  "首页"事件
    
protected   void  lnkFirst_Click( object  sender, EventArgs e)
    {
        
int  index  =   1 ;
        lblPageIndex.Text 
=  index.ToString();
        BindList();
    }
    
#endregion

    
#region  "上一页"事件
    
protected   void  lnkPrev_Click( object  sender, EventArgs e)
    {
        
int  index  =   int .Parse(lblPageIndex.Text);
        index
-- ;
        lblPageIndex.Text 
=  index.ToString();
        BindList();
    }
    
#endregion

    
#region  "下一页"事件
    
protected   void  lnkNext_Click( object  sender, EventArgs e)
    {
        
int  index  =   int .Parse(lblPageIndex.Text);
        index
++ ;
        lblPageIndex.Text 
=  index.ToString();
        BindList();
    }
    
#endregion

    
#region  "尾页"事件
    
protected   void  lnkLast_Click( object  sender, EventArgs e)
    {
        
int  index  =  Convert.ToInt32( this .ViewState[ " TotalPages " ].ToString());
        lblPageIndex.Text 
=  index.ToString();
        BindList();
    }
    
#endregion

    
#region  "转到"事件
    
protected   void  ddlselectPage_SelectedIndexChanged( object  sender, EventArgs e)
    {
        lblPageIndex.Text 
=  ddlselectPage.SelectedValue;
        BindList();
    }
    
#endregion
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值