码迷,mamicode.com
首页 > 其他好文 > 详细

Repeater分页

时间:2015-01-21 15:01:58      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

其实Repeater分页是一个很简单的过程,只要你仔细看里面的逻辑,相信你也可以做到!

准备页面素材

   1、前台页面需要放置一个 Repeater ,用来显示您索要显示的数据。

 2、一个隐藏域 lable 用来控制页数。

   3、 两个图片按钮 用来实现点击切换页码。

后台

   1、数据源,我们使用Datatable,用来绑定Repeater。

   2、分页控制数据源 PagedDataSource,用来分页填充。

  

原理:

   设置PagedDataSource显示条数,然后将PagedDataSource的当前页的数据填充给Repeater,这样就实现了分页效果。

 

  前台代码:

     

<div style="height:1135px">
            <div class="ngg">新闻公告</div>
            <div class="new">
                <ul>
                    <asp:Repeater ID="Repeater1" runat="server">
                        <ItemTemplate>
                            <li>
                                <div class="newbt">
                                    <a href="newstestshow.aspx?id=<%#Eval("news_id") %>"><%#Eval("news_title") %></a>
                                </div>
                                <div class="newtime"><%#Eval("new_time") %></div>
                            </li>
                        </ItemTemplate>
                    </asp:Repeater>
                </ul>
            </div>

             <div class="yeshu">
<!--上一页按钮 -->
                    <asp:Button ID="btnP" runat="server" Text="上一页"  onclick="btnP_Click"  />
<!-- 下一页按钮  -->
                    <asp:Button ID="btnN" runat="server" Text="下一页" onclick="btnN_Click"  />

<!-- 隐藏域ID, 用来控制当前 PagedDataSource 的页数  -->
                    <asp:Label Visible="false" ID="lblCount" runat="server" Text="1"></asp:Label>
            </div>
          
      </div>

 

     后台代码:

    

public void Bind()
    {
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter("select * from new_news order by news_id desc", connStr);
        //指定数据源
        da.Fill(dt);
 
        //实例化pagerDatatable
        PagedDataSource pds = new PagedDataSource();
         
        //给pds绑定数据
        pds.DataSource = dt.DefaultView;
        //设定可分页
        pds.AllowPaging = true;
        //可以分几条
        pds.PageSize = 8;
        //设定默认页
        pds.CurrentPageIndex = Convert.ToInt32(lblCount.Text.ToString ())-1;
        Repeater1.DataSource=pds;
 
        //如果大于当前页
        if(pds.CurrentPageIndex>=1)
        {
            btnP.Enabled=true;
            btnN.Enabled=true;
        }
 
        //如果是最后一页,让下一页按钮不起作用
        if(pds.CurrentPageIndex==pds.PageCount-1)
        {
            btnN.Enabled=false;
            btnP.Enabled=true;
        }
 
        //如果是第一页
        if(pds.CurrentPageIndex==0)
        {
            btnP.Enabled=false;
            btnN.Enabled=true;
        }
         
        Repeater1.DataBind();
    }
 
 
    //下一页事件
    protected void btnN_Click(object sender, EventArgs e)
    {
        lblCount.Text = (Convert.ToInt32(lblCount.Text.ToString()) + 1).ToString ();
        this.Bind();
    }
 
    //上一页事件
    protected void btnP_Click(object sender, EventArgs e)
    {
        lblCount.Text = (Convert.ToInt32(lblCount.Text.ToString()) - 1).ToString ();
        this.Bind();
    }

 

    Page_Load:

   

protected void Page_Load(object sender, EventArgs e)
    {
         Bind();//在窗体加载的时候调用
    }

 

Repeater分页

标签:

原文地址:http://www.cnblogs.com/yisen-1/p/4238770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!