在做网站没用 JS UI控件时 很实用
用法:
var ps=new PageString();
/*可选参数*/
ps.SetIsEnglish = true;// 是否是英文 (默认:false)
ps.SetIsShowText = true;//是否显示分页文字 (默认:true)
//ps.TextFormat="" (默认值:《span class=\"pagetext\"》《strong》总共《/strong》:{0} 条 《strong》当前《/strong》:{1}/{2}《/span》)
//ps.SetPageIndexName Request["pageIndex"](默认值:"pageIndex")
ps.SetIsAjax = false;// (默认值:"false")
/*函数参数*/
int total = 10000;
int pageSize = 10;
int pageIndex = Convert.ToInt32(Request["pageIndex"]);
var page = ps.ToString(total, pageSize, pageIndex, "/UI/PageStringTest.aspx");
//获取 page html 输出
Response.Write(page);
代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace SyntacticSugar
{
/// <summary>
/// ** 描述:分页类
/// ** 创始时间:2015-5-29
/// ** 修改时间:-
/// ** 作者:sunkaixuan
public class PageString
{
/// <summary>
/// 是否是英文 (默认:false)
/// </summary>
public bool SetIsEnglish { get; set; }
/// <summary>
/// 是否显示分页文字(默认:true)
/// </summary>
public bool SetIsShowText { get; set; }
/// <summary>
/// 样式 (默认:"pagination")
/// </summary>
public string SetClassName { get; set; }
/// <summary>
/// 分页参数名 (默认:"pageIndex")
/// </summary>
public string SetPageIndexName { get; set; }
/// <summary>
/// 是否是异步 同步 href='' 异步 onclick=ajaxPage() (默认:false)
/// </summary>
public bool SetIsAjax { get; set; }
/// <summary>
/// 自定义文字
/// string.Format("{0}{1}{2}","总记录数","当前页数","总页数")
/// 默认值:《span class=\"pagetext\"》《strong》总共《/strong》:{0} 条 《strong》当前《/strong》:{1}/{2}《/span》
/// </summary>
public string SetTextFormat { get; set; }
public PageString()
{
SetIsEnglish = false;
SetIsShowText = true;
SetTextFormat = "<span class=\"pagetext\"><strong>总共</strong>:{0} 条 <strong>当前</strong>:{1}/{2}</span> ";
SetClassName = "pagination";
SetPageIndexName = "pageIndex";
SetIsAjax = false;
}
/*免费的样式
.pagination .click {cursor:pointer}
.pagination a{text-decoration: none;border: 1px solid #AAE;color: #15B;font-size: 13px;border-radius: 2px;}
.pagination span{ color:#666;font-size:13px;display: inline-block;border: 1px solid #ccc;padding: 0.2em 0.6em;}
.pagination span.pagetext{ border:none}
.pagination a:hover{background: #26B;color: #fff;}
.pagination a{display: inline-block;padding: 0.2em 0.6em;}
.pagination .page_current{background: #26B;color: #fff;border: 1px solid #AAE;margin-right: 5px;}
.pagination{margin-top: 20px;}
.pagination .current.prev, .pagination .current.next{color: #999;border-color: #999;background: #fff;}
* */
/// <summary>
/// 分页算法<一>共20页 首页 上一页 1 2 3 4 5 6 7 8 9 10 下一页 末页
/// </summary>
/// <param name="total">总记录数</param>
/// <param name="pageSize">每页记录数</param>
/// <param name="pageIndex">当前页数</param>
/// <param name="query_string">Url参数</param>
/// <returns></returns>
public string ToString(int total, int pageSize, int pageIndex, string query_string)
{
int allpage = 0;
int next = 0;
int pre = 0;
int startcount = 0;
int endcount = 0;
StringBuilder pagestr = new StringBuilder();
pageIndex = pageIndex == 0 "<div class=\"{0}\" >", SetClassName);
if (pageIndex < 1) { pageIndex = 1; }
//计算总页数
if (pageSize != 0)
{
allpage = (total / pageSize);
allpage = ((total % pageSize) != 0 "<span>首页</span> <span>上一页</span>");
}
else
{
pagestr.AppendFormat("<a href=\"{0}pageIndex=1\">首页</a> <a href=\"{0}pageIndex={1}\">上一页</a>", query_string, pre);
}
//中间页处理,这个增加时间复杂度,减小空间复杂度
for (int i = startcount; i <= endcount; i++)
{
bool isCurent = pageIndex == i;
if (isCurent)
{
pagestr.Append(" <a class=\"page_current\">" + i + "</a>");
}
else
{
pagestr.Append(" <a href=\"" + query_string + "pageIndex=" + i + "\">" + i + "</a>");
}
}
if (isLast)
{
pagestr.Append("<span>下一页</span> <span>末页</span>");
}
else
{
pagestr.Append(" <a href=\"" + query_string + "pageIndex=" + next + "\">下一页</a> <a href=\"" + query_string + "pageIndex=" + allpage + "\">末页</a>");
}
pagestr.AppendFormat("</div>");
return ConversionData(pagestr.ToString());
}
private string ConversionData(string page)
{
if (SetIsEnglish)
{
page= page.Replace("上一页", "Previous").Replace("下一页", "Next").Replace("总共", "total").Replace("当前", "Current").Replace("条", "records").Replace("首页", "First").Replace("末页", "Last");
}
if (SetIsAjax)
{
var matches = Regex.Matches(page, @"href\="".*""",RegexOptions.Singleline);
if (matches != null && matches.Count > 0)
{
foreach (Match m in matches)
{
page = page.Replace(m.Value, string.Format("class=\"click\" onclick=\"ajaxPage('{0}')\"", Regex.Match(m.Value, string.Format(@"{0}\=(\d+)", SetPageIndexName)).Groups[1].Value));
}
}
}
return page;
}
}
}
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com
暂无“简单好用的ASP.NET分页类(支持AJAX、自定义文字)”评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
