一个Asp.Net的显示分页方法 附加实体转换和存储过

之前自己一直用Aspnetpager控件来显示项目中的分页,但是每次都要拖一个aspnetpager的控件进去,感觉很不舒服,因为现在自己写的webform都不用服务器控件了,所以自己仿照aspnetpager写了一个精简实用的返回分页显示的html方法,其他话不说了,直接上代码。
分页显示信息的实体类:

复制代码 代码如下:


public class Pager
    {
        private string _firstPageText;
        /// <summary>
        /// 最前一页文字显示 默认显示为"首页"
        /// </summary>
        public string FirstPageText
        {
            get {
                return string.IsNullOrEmpty(_firstPageText)? "首页" : _firstPageText;
            }
            set {
                _firstPageText = value;
            }
        }
        private string _prePageText;
        /// <summary>
        /// 上一页文字显示 默认显示为"上一页"
        /// </summary>
        public string PrePageText
        {
            get
            {
                return string.IsNullOrEmpty(_prePageText) ? "上一页" : _prePageText;
            }
            set
            {
                _prePageText = value;
            }
        }
        private string _nextPageText;
        /// <summary>
        /// 下一页文字显示 默认显示为"下一页"
        /// </summary>
        public string NextPageText
        {
            get
            {
                return string.IsNullOrEmpty(_nextPageText) ? "下一页" : _nextPageText;
            }
            set
            {
                _nextPageText = value;
            }
        }
        private string _lastPageText;
        /// <summary>
        /// 末页文字显示 默认显示为"末页"
        /// </summary>
        public string LastPageText
        {
            get
            {
                return string.IsNullOrEmpty(_lastPageText) ? "末页" : _lastPageText;
            }
            set
            {
                _lastPageText = value;
            }
        }
        /// <summary>
        /// 总记录数
        /// </summary>
        public int RecordCount { get; set; }
        private int _pagesize=15;
        /// <summary>
        /// 每页分页尺寸 默认为15
        /// </summary>
        public int PageSize {
            get {
                return _pagesize == 0 ? 15 : _pagesize;
            }set{
                _pagesize = value;
            }
        }
        private int _pageIndex=1;
        /// <summary>
        /// 当前页码
        /// </summary>
        public int PageIndex {
            get {
                return _pageIndex == 0 ? 1 : _pageIndex;
            }
            set {
                _pageIndex = value;
            }
        }
        private int _maxShowPageSize = 10;
        /// <summary>
        /// 显示页码列表的最大个数 默认为10
        /// </summary>
        public int MaxShowPageSize {
            get {
                return _maxShowPageSize;
            }
            set {
                _maxShowPageSize = value;
            }
        }
        private string _queryStringName;
        /// <summary>
        /// 页码在浏览器中传值的名称  默认为page
        /// </summary>
        public string QueryStringName {
            get {
                return string.IsNullOrEmpty(_queryStringName)? "page" : _queryStringName;
            }
            set {
                _queryStringName = value;
            }
        }
        /// <summary>
        /// 页面的URL
        /// </summary>
        public string URL {
            get {
                string url = HttpContext.Current.Request.Url.AbsoluteUri;//当前页面绝对路径
                if (EnableUrlRewriting)//使用url重写
                {
                    url=url.Substring(0, url.LastIndexOf("https://www.jb51.net/") + 1);//获取当前页面的目录路径
                    url += UrlRewritePattern;
                }
                else {//普通带问号的页面传值
                    //demo.aspx
                    //demo.aspx?a=1
                    //demo.aspx?page=1
                    //demo.aspx?a=2&page=1
                    if (url.Contains("aspx?"))
                    {
                        if (Regex.IsMatch(url,@"page=[0-9]*$",RegexOptions.IgnoreCase))//如果存在page=*的字符串
                        {
                            url = Regex.Replace(url, @"page=[0-9]*$", "", RegexOptions.IgnoreCase);//替换掉page=*的字符串
                        }
                        url += QueryStringName + "={0}";
                    }
                    else {
                        url += "?" + QueryStringName + "={0}";
                    }
                }
                return url;
            }
        }
        private bool _enableUrlRewriting;
        /// <summary>
        /// URL是否重写 默认为flase
        /// </summary>
        public bool EnableUrlRewriting {
            get {
                return (object)_enableUrlRewriting == null ? false : _enableUrlRewriting;
            }
            set {
                _enableUrlRewriting = value;
            }
        }
        /// <summary>
        /// 页面URL重写规则,将页码传值用{0}来代替  比如list-1-{0}.html,启用该功能需要将EnableUrlRewriting属性设为true
        /// </summary>
        public string UrlRewritePattern { get; set; }
        private string _className;
        /// <summary>
        /// 分页容器的css名称
        /// </summary>
        public string ClassName {
            get {
                return string.IsNullOrEmpty(_className) ? "paginator" : _className;
            }set{
                _className = value;
            }
        }
        private string _currentPageCss;
        /// <summary>
        /// 当前页面按钮css
        /// </summary>
        public string CurrentPageButtonCss {
            get {
                return string.IsNullOrEmpty(_currentPageCss) ? "cpb" : _currentPageCss;
            }set{
                _currentPageCss = value;
            }
        }
        private bool _showSpanText;
        /// <summary>
        /// Span 标签中文字信息是否显示 默认为false不显示
        /// </summary>
        public bool ShowSpanText {
            get {
                return (object)_showSpanText == null ? false : _showSpanText;
            }
            set {
                _showSpanText = value;
            }
        }
        private string _spanTextClass;
        /// <summary>
        /// 分页文字描述span标签css
        /// </summary>
        public string SpanTextClass {
            get {
                return string.IsNullOrEmpty(_spanTextClass) ? "stc" : _spanTextClass;
            }
            set {
                _spanTextClass = value;
            }
        }
        private string _submitButtonText;
        /// <summary>
        /// 确定按钮文字显示 默认显示"确定"
        /// </summary>
        public string SubmitButtonText {
            get {
                return string.IsNullOrEmpty(_submitButtonText) ? "确定" : _submitButtonText;
            }
            set {
                _submitButtonText = value;
            }
        }
    }


分页显示html代码的拼接方法:

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjdszf.html