一个Repeater的分页方法

1.前台页面:

 

代码
          <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>

 

分页样式:

 

代码
.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;}

 

 分页代码:

 

代码
<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>

 

后台代码:

 

代码
 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>";


        }
    }

 

 

 

 

posted @ 2009-12-03 22:01  ForFreeDom  阅读(632)  评论(0编辑  收藏  举报