之前自己一直用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代码的拼接方法:
复制代码 代码如下: