一个Repeater的分页方法

1.前台页面:

 

ExpandedBlockStart.gif 代码
           < asp:Repeater  ID ="RptThankBrd"  runat ="server"  
               onitemdatabound
="RptThankBrd_ItemDataBound" >
           
< ItemTemplate >
           
< div  class ="thanktitle" >
               
< asp:PlaceHolder  ID ="PlaceHolder1"  runat ="server" >
                          
< span  style ="color:Blue" > 参调人: </ span >
           
<% # DataBinder.Eval( Container.DataItem, " name " %>
               
</ asp:PlaceHolder >
                              
< asp:PlaceHolder  ID ="PlaceHolder2"  runat ="server" >
                          
< span  style ="color:Blue" > 流水号: </ span >
           
<% # DataBinder.Eval( Container.DataItem, " batchid " %>
               
</ asp:PlaceHolder >

           
</ div >
           
< div  class ="thankcontent" > <% # DataBinder.Eval( Container.DataItem, " answer " %> </ div >
           
< div   class ="pubdate" > 填写时间: <% # DataBinder.Eval( Container.DataItem, " insdate " %> </ div >
           
</ ItemTemplate >
           
</ asp:Repeater >

 

分页样式:

 

ExpandedBlockStart.gif 代码
.vc
{
    padding
: 30px 10px 20px ;
    width
: 90%!important ;
    overflow
: visible ; text-align : center ;  font-size : 15px ;
    
}
.vc a.o:link,.vc a.o:visited
{ margin : 0 4px ; padding : 3px 6px ;
    border
: 1px solid #ddd ; text-decoration : none ;
    background
: #fff ; }
.vc a.o:hover
{ border : 1px solid #049 ; text-decoration : none ; }
.vc a.obg:link,.vc a.obg:visited
{ background : #f00 ; color : #fff ; }

 

 分页代码:

 

ExpandedBlockStart.gif 代码
< div  class ="vc" >  

 
< script  type ="text/javascript" >
document.onkeyup
= function (e){ if (window.event.keyCode == 37 ){window.location.href = $( " #HLpre " ).attr( " href " );}}
</ script >
< asp:HyperLink  ID ="HLpre"  runat ="server"  style =" font-size:12px;font-weight:bold;  text-decoration:none;margin-right:15px;" > &laquo; </ asp:HyperLink >
第  
&nbsp;     <% = pagehtml  %>     &nbsp;  页 &nbsp; < asp:HyperLink  ID ="HLnext"  runat ="server"  style =" font-size:12px;font-weight:bold;  text-decoration:none;margin-left:15px;" > &raquo; </ asp:HyperLink >
< script  type ="text/javascript" >
document.onkeydown
= function (e){ if (window.event.keyCode == 39 ){window.location.href = $( " #HLnext " ).attr( " href " );}}
</ script >
</ div >

 

后台代码:

 

ExpandedBlockStart.gif 代码
  protected   void  Page_Load( object  sender, EventArgs e)
    {
       
// 获取当前页码
         if  ( ! this .IsPostBack)
        {
            
if  (Request.Params[ " page " ==   null )
                curpage 
=   1 ;
            
else
            {
                
string  temp  =  Request.Params[ " page " ].ToString();
                curpage 
=  ckString.intCheck(temp,  1 );
            }

        }
            
             
// 当前页面链接
             cururl  =   " viewQuestionPaper.aspx " ;
            
// 绑定数据
             showthanklist(vote.getQuestionPaper(Request[ " surveyid " ], Request[ " questionid " ]));
        
        }
    }

// 设置分页参数
     int  anonymous  =   0 ;
    
int  curpage  =   1 ;
    
int  pagesize  =   2 ; // 设置每页显示多少条记录
     public   string  pagehtml  =   string .Empty;
    
public   string  cururl  =   string .Empty;
    
int  pagenum  =   15 ; // 设置每个分组有多少页码
     int  startindex  =   1 ;
// 分页核心代码
     private   void  showthanklist(DataTable dt)
    {
        PagedDataSource pagedata 
=   new  PagedDataSource();
        
// DataTable dt = LoadRepeater(id.ToString());
        pagedata.DataSource  =  dt.DefaultView;
        pagedata.PageSize 
=  pagesize;
        pagedata.AllowPaging 
=   true ;
        
int  half  =   1 ;
        
while  ((half  +   1 *   2   <  pagenum) { half ++ ; }
        
int  start  =   1 ;
        
int  end  =   1 ;

        
if  (curpage  >  pagedata.PageCount  ||  curpage  <   1 ) curpage  =   1 ;
        pagedata.CurrentPageIndex 
=  curpage  -   1 ;
        
// 如果页面总数小于分组数量.
         if  (pagenum  >=  pagedata.PageCount)
        { end 
=  pagedata.PageCount; getPageindex(start, end, curpage); }
        
else
        {
            
if  (curpage  -  half  >   0 )
            {

                start 
=  curpage  -  half;
                
if  (curpage  +  half  >  pagedata.PageCount)
                {
                    start 
=  pagedata.PageCount  -  pagenum  +   1 ;
                    end 
=  pagedata.PageCount;
                }
                
else
                    end 
=  curpage  +  half;

            }
            
else
            {
                start 
=   1 ;
                end 
=  pagenum  >  pagedata.PageCount  ?  pagedata.PageCount : pagenum;
            }

            getPageindex(start, end, curpage);
        }
        
if  (pagedata.PageCount  ==   1 // 如果只有一个分组
        { HLpre.Visible  =   false ; HLnext.Visible  =   false ; }
        
else   if  (curpage  ==  pagedata.PageCount  &&  curpage  >   1 ) // 如果当前分组是最后一个分组
        {

            HLpre.Enabled 
=   true ;
            HLnext.Enabled 
=   false ;
            HLpre.NavigateUrl 
=  cururl  +   " page= "   +  (curpage  -   1 );

        }
        
else   if  (curpage  ==   1   &&  curpage  <  pagedata.PageCount)
        {
            HLpre.Enabled 
=   false ;
            HLnext.Enabled 
=   true ;
            HLnext.NavigateUrl 
=  cururl  +   " page= "   +  (curpage  +   1 );
        }
        
if  (curpage  >   1   &&  curpage  <  pagedata.PageCount) // 如果当前分组处在中间
        {
            HLpre.Enabled 
=   true ;
            HLpre.NavigateUrl 
=  cururl  +   " page= "   +  (curpage  -   1 );
            HLnext.NavigateUrl 
=  cururl  +   " page= "   +  (curpage  +   1 );
            HLnext.Enabled 
=   true ;
        }

        
this .RptThankBrd.DataSource  =  pagedata;
        
this .RptThankBrd.DataBind();

    }

// 设置分页样式
     private   void  getPageindex( int  start,  int  end,  int  curpage)
    {
        pagehtml 
=   "" ;
        
for  ( int  i  =  start; i  <=  end; i ++ )
        {
            
if  (curpage  ==  i) { pagehtml  +=   " <a href=' "   +  cururl  +   " page= "   +  Convert.ToString(i  +  startindex  -   1 +   " ' class='o obg'> "   +  Convert.ToString(i  +  startindex  -   1 +   " </a> " ; }
            
else
                pagehtml 
+=   " <a href=' "   +  cururl  +   " page= "   +  Convert.ToString(i  +  startindex  -   1 +   " ' class='o '> "   +  Convert.ToString(i  +  startindex  -   1 +   " </a> " ;


        }
    }

 

 

 

 

转载于:https://www.cnblogs.com/ForFreeDom/archive/2009/12/03/1616552.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值