• PagedDataSource、Repeater以及AspNetPager在ASP.NET上分页。


    一、前台使用服务器标签

    1.1使用Repeater控件

    <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>  
                <table>
                    <tr><th>这里存放ID</th><th>这里存放名字</th></tr>    
            </HeaderTemplate>
            <ItemTemplate>
                    <tr><td><%#Eval("id") %></td><td><%#Eval("AUTHORITY_NAME")%></td></tr>
            </ItemTemplate>
            <FooterTemplate></table>
            </FooterTemplate>
        </asp:Repeater>

    <%#Eval("id") %>:使用Repeater的时候,需要给这个控件赋数据源,这个数据源一般是从数据库中通过ADO。net对象获取的一个datatable或者dataset。
    Eval()括号中的那个id就是table中列明
    <%#Eval("AUTHORITY_NAME")%>:同上!!!↑↑↑
    关于Repeater的详细用法:http://www.cnblogs.com/fengzheng126/archive/2012/05/07/2487355.html

    1.2使用AspNetPager控件(使用之前,需要先对这个插件进行添加引用)

    <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>要在前台页面上“注册一下”
    <div class="paginator"> <webdiyer:AspNetPager ID="AspNetPager1" runat="server" AlwaysShow="True" CustomInfoStyle="FONT-SIZE: 12px" FirstPageText="首页" HorizontalAlign="Center" inputboxstyle="19px" LastPageText="尾页" meta:resourcekey="AspNetPager1" NextPageText="下一页" PageSize="5" PrevPageText="上一页" Style="font-size: 14px" Width="95%" CssClass="anpager" CurrentPageButtonClass="cpb" OnPageChanging="AspNetPager1_PageChanging" ShowBoxThreshold="10"> </webdiyer:AspNetPager> </div>

    二、后台 生成一个PagedDataSource 对象,并为这个对象设置一些属性;这个对象最终会返回数据给调用者。

    /// <summary>
            /// 返回PagedDataSource
            /// </summary>
            /// <param name="AspNetPager1">AspNetPager控件的ID</param>
            /// <param name="currentIndex">当前页的索引</param>
            /// <param name="dt">从数据库中,select出来的表</param>
            /// <returns>PagedDataSource</returns>
    public static PagedDataSource GetPageDataSource(Wuqi.Webdiyer.AspNetPager AspNetPager1, int currentIndex, DataTable dt)
            {
                PagedDataSource source = new PagedDataSource();//生成PageDataSource对象
                AspNetPager1.RecordCount = dt.Rows.Count;//给分页控件设置一个数据表中 记录的总数
                source.DataSource = dt.DefaultView;//将数据表赋值给PageDataSource
                source.AllowPaging = true;
                source.CurrentPageIndex = currentIndex;//当前索引页
                source.PageSize = AspNetPager1.PageSize;//每一页显示的记录的数量
                return source;
            }

    三、将数据源绑定到Repeater上去。

    private void Bind() {
                string strSql = string.Format("select* from dbo.SMTAuthorityManage");
                DataTable dtbl = sql.Query(strSql);            
                Repeater1.DataSource = GetPageDataSource(AspNetPager1, AspNetPager1.CurrentPageIndex - 1, dtbl);
                Repeater1.DataBind();//Repeater是之前的那个控件
            }

    四,调用bind方法,实现页面上下翻页(点击页码)并显示相应页码上的数据

    protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
            {
                this.AspNetPager1.CurrentPageIndex = e.NewPageIndex;//传入当前页码
                Bind();
            }

  • 相关阅读:
    mac下编写命令脚本
    mac环境mongodb安装小坑
    JS
    设计模式:装饰器
    proxy 数据帧听
    react hook 简单实现
    报错:java.lang.NumberFormatException: null
    git回滚到指定版本
    1109. 航班预订统计 力扣(中等) 差分数组 不会但神奇
    528. 按权重随机选择 力扣(中等) 前缀和rand()
  • 原文地址:https://www.cnblogs.com/vichin/p/6070112.html
Copyright © 2020-2023  润新知