ASP Form 下 rpt控件分页实现

来源:互联网 发布:淘宝卖游戏币赚钱吗 编辑:程序博客网 时间:2024/06/06 14:24

说明:针对 rpt 控件使用数据绑定模式

第一步 html 页面适当位置增加分页标签

<div style="text-align: right">        <asp:HyperLink ID="linkFirstPage" runat="server" Font-Underline="False">首页 </asp:HyperLink><<            <asp:HyperLink ID="linkPre" runat="server" Font-Underline="False">上一页 </asp:HyperLink>        <asp:Literal ID="yemsl" runat="server"> </asp:Literal>        <asp:HyperLink ID="linkNext" runat="server" Font-Underline="False">下一页 </asp:HyperLink>        <asp:HyperLink            ID="linkEndPage" runat="server" Font-Underline="False">尾页 </asp:HyperLink>|            <asp:Literal                ID="tjixx" runat="server"> </asp:Literal>    </div>

第二步 添加引用

using System.Text;using System.Web.UI.WebControls;

第三步 分页代码

#region 自动分页                StringBuilder dataBuilder = new StringBuilder();                PagedDataSource objPDS = new PagedDataSource();                objPDS.DataSource = lists;//绑定数据源                objPDS.AllowPaging = true;                objPDS.PageSize = 15;//分页数目                int curPage;                int cshi;                int jshi;                //int zyes = lists.Count;                int zyes = Int32.Parse(objPDS.PageCount.ToString());                this.tjixx.Text = "总共 <font color=red>" + objPDS.DataSourceCount + " </font>条信息";                this.tjixx.Text += "|共 <font color=red>" + zyes + " </font>页";                if (Request.QueryString["Page"] != null)                {                    if (Int32.Parse(Request.QueryString["Page"]) > zyes)                        curPage = zyes;                    else                        curPage = Int32.Parse(Request.QueryString["Page"]);                }                else                {                    curPage = 1;                }                if (zyes <= 9)                {                    cshi = 1;                    jshi = zyes;                }                else                {                    if (curPage <= 5)                    {                        cshi = 1;                        jshi = 9;                    }                    else                    {                        cshi = curPage - 4;                        int jshils = curPage + 4;                        if (jshils > zyes)                            jshi = zyes;                        else                            jshi = curPage + 4;                    }                }                objPDS.CurrentPageIndex = curPage - 1;                StringBuilder m_strPageInfo = new StringBuilder();                for (int i = cshi; i <= jshi; i++)                {                    if (i == Int32.Parse(curPage.ToString()))                        m_strPageInfo.Append(" <span> <strong>" + i + " </strong></span> ");                    else                        m_strPageInfo.Append(" <span><strong><a href=\"" + Request.CurrentExecutionFilePath + "?Page=" + i + "\">" + i + " </ a ></ strong ></ span >");                }                this.yemsl.Text = m_strPageInfo.ToString();                if (!objPDS.IsFirstPage)                {                    linkPre.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(curPage - 1);                }                if (!objPDS.IsLastPage)                {                    linkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(curPage + 1);                }                linkFirstPage.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1";                linkEndPage.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(objPDS.PageCount);                var pages = lists.Skip(objPDS.CurrentPageIndex * objPDS.PageSize).Take(objPDS.PageSize);//这里采用将数据源分页查询的模式可能不够效率。                #endregion

第四步:绑定展示

   rpt.DataSource = pages;   rpt.DataBind();
0 0
原创粉丝点击