您现在的位置是:首页 >

html表格简单怎么分页 简单实用的分页类

火烧 2022-11-11 12:10:17 1077
简单实用的分页类 一 写一个分页类 u i g Sy tem u i g Sy tem Text u i g Sy tem Diag o tic ame ace Zhuwe fe g { u lic

简单实用的分页类  

    一 写一个分页类        using System;        using System Text;        using System Diagnostics;        namespace Zhuwenfeng        {        public class MyPager        {        /// <summary>        /// 总数据条数        /// </summary>        public int TotalCount { get; set; }        /// <summary>        /// 每页数据条数        /// </summary>        public int PageSize { get; set; }        /// <summary>        /// 当前页码(从 开始)        /// </summary>        public int CurrentPageIndex { get; set; }        /// <summary>        /// 显示出来最多的页码数量 因为假设有 页 不可能把 页都显示到界面上        /// </summary>        public int MaxPagerCount { get; set; }        /// <summary>        /// 页码链接的地址格式 页码用{n}占位         /// </summary>        public string UrlFormat { get; set; }        public MyPager()        {        PageSize = ;        MaxPagerCount = ;        }        /// <summary>        /// 尝试从字符串pn中解析当前页面赋值给CurrentPageIndex        /// </summary>        /// <param name= pn ></param>        public void TryParseCurrentPageIndex(string pn)        {        int temp;        if (int TryParse(pn out temp))        {        CurrentPageIndex = temp;        }        else        {        CurrentPageIndex = ;        }        }        /// <summary>        /// 创建页码链接        /// </summary>        /// <param name= i >页码</param>        /// <param name= text >链接文本</param>        /// <returns></returns>   

html表格简单怎么分页 简单实用的分页类
    private string GetPageLink(int i string text)        {        StringBuilder sb = new StringBuilder()         string url = UrlFormat Replace( {n} i ToString())         sb Append( <a ) Append(url) Append( > ) Append(text) Append( </a> )         return sb ToString()         }        /// <summary>        /// 检查输入参数        /// </summary>        private void Check()        {        Debug Assert(PageSize> )         Debug Assert(CurrentPageIndex >= )         Debug Assert(!string IsNullOrEmpty(UrlFormat))         }        /// <summary>        ///渲染到前台到得HTML代码        /// </summary>        /// <returns></returns>        public string Render()        {        Check()         StringBuilder sb = new StringBuilder()         double tempCount = TotalCount / PageSize;        int pageCount = (int)Math Ceiling(tempCount)         //计算显示的页码数(当总页码大于MaxPagerCount)的起始页码        int visibleStart = CurrentPageIndex MaxPagerCount/ ;        if (visibleStart < )        {        visibleStart = ;        }        //计算显示的页码数(当总页码大于MaxPagerCount)的起始页码        int visibleEnd = visibleStart + MaxPagerCount;        //显示最多MaxPagerCount条        //如果算出来的结束页码大于总页码的话则调整为最大页码        if (visibleEnd >pageCount)        {        visibleEnd = pageCount;        }        if (CurrentPageIndex > )        {        sb Append(GetPageLink( 首页 ))         sb Append(GetPageLink(CurrentPageIndex 上一页 ))         }        else        {        sb Append( <span>首页</span> )         //如果没有上一页了 则只显示一个上一页的文字 没有超链接        sb Append( <span>上一页</span> )         }

        //绘制可视的页码链接         for (int i = visibleStart; i <= visibleEnd; i++)        {        //当前页不是超链接        if (i == CurrentPageIndex)        {        sb Append( <span> ) Append(i) Append( </span> )         }        else        {        sb Append(GetPageLink(i i ToString()))         }        }        if (CurrentPageIndex < pageCount)        {        sb Append(GetPageLink(CurrentPageIndex + 下一页 ))         sb Append(GetPageLink(pageCount + 末页 ))         }        else        {        sb Append( <span>下一页</span> )         sb Append( <span>末页</span> )         }        return sb ToString()         }        }        }        二 UI层代码示例        public partial class 分页测试 : System Web UI Page        {        protected string PagerHTML { get; private set; }        protected void Page_Load(object sender EventArgs e)        {        var pager = new MyPager()         pager UrlFormat = 分页测试 aspx?pagenum={n} ;        pager PageSize = ;        pager TryParseCurrentPageIndex(Request[ pagenum ])         int startRowIndex = (pager CurrentPageIndex ) * pager PageSize;        so_KeywordLogBLL bll = new so_KeywordLogBLL()         pager TotalCount = bll GetTotalCount()         Repeater DataSource = bll GetPagedData(startRowIndex startRowIndex + pager PageSize )         Repeater DataBind()         PagerHTML = pager Render() //渲染页码条HTML        }        }   

    三 前台代码        <form id= form runat= server >        <div>        <asp:Repeater ID= Repeater runat= server >        <ItemTemplate>        <li>        <%#Eval( Id ) %>|<%#Eval( KeyWord ) %>        </li>        </ItemTemplate>        </asp:Repeater>        <div class= pager >        <%=PagerHTML%>        </div>        </div>        </form>        四 加一个CSS更好看        <style type= text/css >        pager        {        text align: center;        padding bottom: px;        padding left: px;        padding right: px;        float: right;        padding top: px;        }        pager a        {        border bottom: #ccc px solid;        text align: left;        border left: #ccc px solid;        padding bottom: px;        line height: px;        margin: px px;        outline style: none;        padding left: px;        padding right: px;        background: #fff;        color: # ;        font size: px;        border top: #ccc px solid;        border right: #ccc px solid;        text decoration: none;        padding top: px;        }        pager a:hover        {        border bottom: #f px solid;        border left: #f px solid;        color: #f ;        border top: #f px solid;        border right: #f px solid;        text decoration: underline;        }        pager a:focus        {        moz outline style: none;        }        pager span        {        border bottom style: none;        text align: left;        padding bottom: px;        line height: px;        border right style: none;        margin: px px;        padding left: px;        padding right: px;        border top style: none;        background: #f ;        color: #fff;        font size: px;        border left style: none;        padding top: px;        }        </style>   

    五 再加一个数据访问层的Select代码        public int GetTotalCount()        {        string sql = SELECT count(*) FROM so_KeywordLog ;        return (int)DbHelperSQL GetSingle(sql)         }        public DataSet GetPagedData(int minrownum int maxrownum)        {        string sql = SELECT * from(SELECT * (row_number() over(order by Id)) rownum FROM so_KeywordLog) t where rownum>=@minrownum and rownum<=@maxrownum ;        SqlParameter[] parameters = { new SqlParameter( @minrownum SqlDbType Int ) new SqlParameter( @maxrownum SqlDbType Int ) };        parameters[ ] Value = minrownum;        parameters[ ] Value = maxrownum;        return  DbHelperSQL Query(sql parameters)         }        六 相关分页Select语句(扩展)        存储过程        create PROCEDURE GetPageDataOutRowPageCount         (        @PageIndex int = 当前页数        @PageSize  int = 每页大小        @RowCount int output 总行数(传出参数)        @PageCount int output 总页数(传出参数)        )        AS        begin        DECLARE @sql NVARCHAR( ) @sqlCount NVARCHAR( )        select @RowCount =COUNT(SID) @PageCount=CEILING((COUNT(SID)+ )/@PageSize) FROM Students        SET @sql= SELECT TOP +str(@PageSize) +   FROM Students where SID not in(select top +str((@PageIndex )*@PageSize) + SID from Students)         EXEC(@sql)        end        Select语句        select top + pageSize + * from Students where SID not in (select top + (pageIndex ) * int Parse(pageSize) + SID from Students)        Select语句        select * from (select * Row_Number()over(order by id) RowNumber from books) t        where t RowNumber>= and t RowNumber<=         第n页 (PageIndex )*pageSize+ PageIndex*pageSize        ListView 提供的分页不说了 lishixinzhi/Article/program/net/201311/13748  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码