62,271
社区成员
发帖
与我相关
我的任务
分享using System;
using System.Collections.Generic;
using System.Web;
using dressmodel;
using System.Text;
using System.Text.RegularExpressions;
public class PaginatedList<T> : List<T>
{
private int pagezise;
public int Pagezise
{
get { return pagezise; }
set { pagezise = value; }
}
private int pageindex;
public int Pageindex
{
get { return pageindex; }
set { pageindex = value; }
}
private int TotalCount;
public int TotalCount1
{
get { return TotalCount; }
set { TotalCount = value; }
}
private int TotalPage;
public int TotalPage1
{
get { return TotalPage; }
set { TotalPage = value; }
}
private string url;
public string Url
{
get { return url; }
set { url = value; }
}
public PaginatedList(IList<T> source, int pageindex, int pagezise,int totalcount, string url)
{
this.pageindex = pageindex;
this.pagezise = pagezise;
TotalCount = totalcount;
TotalPage = (int)Math.Ceiling(TotalCount / (double)pagezise);
this.AddRange(source);
this.url = url;
}
#region 分页属性 返回分页数据
public string GetPatePar
{
get
{
if (TotalCount1 >= 1)
{
StringBuilder str = new StringBuilder();
int startpage = (pageindex - 1) / 10 * 10 + 1;
int endpage = (pageindex - 1) / 10 * 10 + 10;
int x = endpage > TotalPage ? TotalPage : endpage;
str.Append("<div class='anpager'>");
if (HasPreviousPage)
{
str.Append("<a href=" + url + "?page=1" + GetURLParms + ">首页</a>");
str.Append("<a href=" + url + "?page=" + (pageindex - 1) + GetURLParms + ">上一页</a>");
}
else
{
str.Append("<a href=#>首页</a>");
str.Append("<a href=#>上一页</a>");
}
for (int i = startpage; i <= x; i++)
{
if (i == pageindex)
{
str.Append(string.Format("<a style='margin-left:3px; margin-right:3px;padding:2px 4px 2px 4px;color:red;border:1px solid #cccccc;background-color:#ffffff; '>" + i + "</a>"));
}
else
{
str.Append(string.Format("<a href=" + url + "?page=" + i + GetURLParms + ">" + i + "</a>"));
}
}
if (HasNextPage)
{
str.Append("<a href=" + url + "?page=" + (pageindex + 1) + GetURLParms + ">下一页</a>");
str.Append("<a href=" + url + "?page=" + TotalPage + GetURLParms + ">尾页</a>");
}
else
{
str.Append("<a href=#>下一页</a>");
str.Append("<a href=#>尾页</a>");
}
str.Append("</div>");
return str.ToString();
}
else
{
return "<font color=red>暂无数据!</font>";
}
}
}
#endregion
/// <summary>
/// url重写
/// </summary>
private string GetURLParms
{
get
{
string query = HttpContext.Current.Request.Url.Query;
query = Regex.Replace(query, @"\?page=\d*", "", RegexOptions.Compiled);
return query;
}
}
/// <summary>
///判断是否有上一页
/// </summary>
public bool HasPreviousPage
{
get
{
return (pageindex > 1);
}
}
/// <summary>
///判断是否有下一页
/// </summary>
public bool HasNextPage
{
get
{
return (pageindex < TotalPage);
}
}
}
又见求代码!!
<div class="newsCls">
<h2>
新闻列表</h2>
<ul>
$newscls_list$
</ul>
<div class="pager">
共$newsCount$条 当前$Count$页 $first$ $prev$ $next$ $last$
<select name="menu1" onchange="MM_jumpMenu('parent',this,0)">
$drodown$
</select>
</div>
</div>
public void toNews()
{
int PageSize = Convert.ToInt32(c.newsPager);
int Count = Convert.ToInt32(anno.ScalarAnno()) / PageSize + 1;
Hashtable ht = new Hashtable();
for (int y = 0; y < Count; y++)
{
string ItemNewsCls_shtml = ToIO.Reader(onPath + "ItemViewCls.shtml");
string titel = "公告列表 - " + c.webName + " - " + c.webUrl;
if (Cache["cls_list"] == null)
{
Cache["cls_list"] = T_AnnounceManager.GetAllT_Announces() as List<T_Announce>;
}
//公告列表
List<T_Announce> list = News_List(Cache["cls_list"] as List<T_Announce>, y, PageSize);
string newscls_list = "";
for (int i = 0; i < list.Count; i++)
{
newscls_list += "<li> <span>" + list[i].Updatetime + "</span> <a href=\"../view/View_" + list[i].Id + ".shtml\" target=\"_blank\">" + list[i].Title + "</a></li>";
}
ht.Add("$newscls_list$", newscls_list);
string first = "";
string prev = "";
string next = "";
string last = "";
if (y == 0)
{
first = "<a>首页</a>";
}
else
{
first = "<a href='ViewCls_0.shtml' >首页</a>";
}
if (y == 0)
{
prev = "<a>上一页</a>";
}
else
{
prev = "<a href='ViewCls_" + Convert.ToString(y - 1) + ".shtml' >上一页</a>";
}
if (y == Count - 1)
{
next = "<a>下一页</a>";
}
else
{
next = "<a href='ViewCls_" + Convert.ToString(y + 1) + ".shtml' >下一页</a>";
}
if (y == Count - 1)
{
last = "<a>末页</a>";
}
else
{
last = "<a href='ViewCls_" + Convert.ToString(Count - 1) + ".shtml' >末页</a>";
}
string drodown = "";
string select;
for (int i_ = 0; i_ < Count; i_++)
{
if (i_ == y)
{
select = "selected='selected'";
}
else
{
select = "";
}
drodown += "\r\n<option value=\"ViewCls_" + i_.ToString() + ".shtml\" " + select + ">" + "第" + Convert.ToString(i_ + 1) + "页" + "</option>\r\n";
}
ht.Add("$newsCount$", "<font color='red'>" + Convert.ToInt32(anno.ScalarAnno()) + "</font>");
ht.Add("$Count$", "<font color='red'>" + (y + 1) + "/" + Count.ToString() + "</font>");
ht.Add("$drodown$", drodown);
ht.Add("$first$", first);
ht.Add("$prev$", prev);
ht.Add("$next$", next);
ht.Add("$last$", last);
ItemNewsCls_shtml = ToIO.Replace(ItemNewsCls_shtml, ht);
ToIO.Writer(outPath + "ViewCls_" + y + ".shtml", ItemNewsCls_shtml);
ht.Clear();
}
Cache.Remove("cls_list");
}
//分页
public static List<T_Announce> News_List(List<T_Announce> vNews_List, int pageindex, int pagesize)
{
int index = pageindex * pagesize;
List<T_Announce> list = new List<T_Announce>();
for (int i = 0; i < pagesize; i++)
{
try
{
list.Add(vNews_List[index + i]);
}
catch
{
break;
}
}
return list;
}
-- --------------------------------------------------------------------------------
-- Routine DDL
-- --------------------------------------------------------------------------------
DELIMITER $$
CREATE DEFINER=`root`@`` PROCEDURE `Employee_GetPaged`(
_WhereClause VARCHAR(250),
_OrderBy VARCHAR(250),
_PageIndex INT,
_PageSize INT,
OUT _TotalCount INT
)
BEGIN
SET @RowCount = 0;
SET @SqlStr = 'SELECT COUNT(EmployeeId) INTO @RowCount FROM Employee';
IF _WhereClause IS NOT NULL AND _WhereClause <> '' THEN
SET @SqlStr = CONCAT(@SqlStr, ' WHERE ', _WhereClause);
ELSE
SET @SqlStr = CONCAT(@SqlStr, ' WHERE EmployeeId > 0');
END IF;
PREPARE StmtTotalCount FROM @SqlStr;
EXECUTE StmtTotalCount;
DEALLOCATE PREPARE StmtTotalCount;
SET _TotalCount = @RowCount;
SET @SqlStr = 'SELECT EmployeeId, EmployeeCode, EmployeeName, EmployeeNo, EmployeeIp, Email, Password, PositionId, WorkTypeId, LanguageId, Efficiency, IsActive FROM Employee';
IF _WhereClause IS NOT NULL AND _WhereClause <> '' THEN
SET @SqlStr = CONCAT(@SqlStr, ' WHERE ', _WhereClause);
ELSE
SET @SqlStr = CONCAT(@SqlStr, ' WHERE EmployeeId > 0');
END IF;
IF _OrderBy IS NOT NULL AND _OrderBy <> '' THEN
SET @SqlStr = CONCAT(@SqlStr, ' ORDER BY ', _OrderBy);
END IF;
IF _PageIndex > 0 AND _PageSize > 0 THEN
SET @LimitStart = (_PageIndex - 1) * _PageSize;
SET @LimitEnd = _PageSize;
SET @SqlStr = CONCAT(@SqlStr, ' LIMIT ', @LimitStart, ',', @LimitEnd);
END IF;
PREPARE StmtRecord FROM @SqlStr;
EXECUTE StmtRecord;
DEALLOCATE PREPARE StmtRecord;
END$$
public static class HtmlHelper
{
/// <summary>
/// 创建表头html
/// </summary>
/// <param name="listTh">表头信息集合</param>
/// <returns></returns>
public static string CreateThead(List<Thead> listTh)
{
if (listTh != null && listTh.Count > 0)
{
StringBuilder sbHtml = new StringBuilder("<thead><tr>");
foreach (Thead th in listTh)
{
sbHtml.Append("<td ");
sbHtml.Append(th.Style == null ? "" : th.Style);
sbHtml.Append(">");
sbHtml.Append(th.Col == null ? "" : th.Col);
sbHtml.Append("</td>");
}
sbHtml.Append("</tr></thead>");
return sbHtml.Replace("'","\\'").ToString();
}
return "";
}
/// <summary>
/// 创建分页html
/// </summary>
/// <returns></returns>
public static string CreatePager(Pager pager)
{
if (pager == null) { return ""; }
int pageCount = (int)(Math.Ceiling(pager.RowCount / (double)pager.PageSize));
if (pageCount > 1 || pager.HasDisplayByOnlyPage )
{
StringBuilder sbHtml = new StringBuilder("<div ");
sbHtml.Append(pager.PagerStyle == null ? "" : pager.PagerStyle.Replace("'","\\'"));
sbHtml.Append(">");
sbHtml.Append(string.Format("<span style=\"float:left;margin-left:5px;\">当前<b><font style=\"color:red\">{0}</font>/{1}</b>页 每页<b>{2}</b>条 共<b>{3}</b>条记录</span>", pager.PageIndex, pageCount, pager.PageSize,pager.RowCount));
sbHtml.Append("<span style=\"float:right; margin-right:5px;\">");
if (pager.PageIndex == 1)
{
sbHtml.Append("首页 ");
sbHtml.Append("上一页 ");
}
else
{
sbHtml.Append(string.Format("<a href=\"javascript:void(0)\" onclick=\"{0}({1})\">首页</a> ",pager.GotoPageFun ,1));
sbHtml.Append(string.Format("<a href=\"javascript:void(0)\" onclick=\"{0}({1})\">上一页</a> ",pager.GotoPageFun ,pager.PageIndex-1));
}
if (pager.PageIndex < pageCount)
{
sbHtml.Append(string.Format("<a href=\"javascript:void(0)\" onclick=\"{0}({1})\">下一页</a> ",pager.GotoPageFun ,pager.PageIndex+1));
sbHtml.Append(string.Format("<a href=\"javascript:void(0)\" onclick=\"{0}({1})\">尾页</a> ",pager.GotoPageFun ,pageCount));
}
else
{
sbHtml.Append("下一页 ");
sbHtml.Append("尾页 ");
}
sbHtml.Append(string.Format("跳到第<select onchange=\"{0}(this.value)\">",pager.GotoPageFun));
for (int i = 1; i <= pageCount;i++ )
{
sbHtml.Append(string.Format("<option value={0} {1}>{2}</option>", i, (i == pager.PageIndex ? "selected=selected" : ""), i));
}
sbHtml.Append("</select>页</span ></div>");
return sbHtml.ToString();
}
return "";
}
}
/// <summary>
/// 单元格模板类
/// </summary>
public class ColTemplet
{
private string _templet;
/// <summary>
/// 每列的模板
/// </summary>
public string Templet
{
get { return _templet; }
set { _templet = value; }
}
private string _colStyle = "";
/// <summary>
/// 每列的样式 (style='width:80px' 或者 class='col' )
/// </summary>
public string ColStyle
{
get { return _colStyle; }
set { _colStyle = value; }
}
private List<string> _listColName;
/// <summary>
/// 模板列要使用的数据列集合
/// </summary>
public List<string> ListColName
{
get { return _listColName; }
set { _listColName = value; }
}
}
/// <summary>
/// 表头实体类
/// </summary>
public class Thead
{
public Thead(string col,string style)
{
this._col = col;
this._style = style;
}
private string _col;
/// <summary>
/// 表头显示值
/// </summary>
public string Col
{
get { return _col; }
set { _col = value; }
}
private string _style;
/// <summary>
/// 表头每列样式 如:(style='width:80px' 或者 class='thead' )
/// </summary>
public string Style
{
get { return _style; }
set { _style = value; }
}
}
public class Pager
{
private int pageIndex=1;
/// <summary>
/// 当前页索引 默认1
/// </summary>
public int PageIndex
{
get { return pageIndex; }
set {
if (value<1)
{
pageIndex = 1;
}else{
pageIndex = value;
}
}
}
private int pageSize=20;
/// <summary>
/// 每页多少条 默认20
/// </summary>
public int PageSize
{
get { return pageSize; }
set { pageSize = value; }
}
private int rowCount=0;
/// <summary>
/// 共多少行数据 默认0
/// </summary>
public int RowCount
{
get { return rowCount; }
set { rowCount = value; }
}
private string gotoPageFun = "gotoPage";
/// <summary>
/// 跳转页面函数名 默认 ‘gotoPage’
/// </summary>
public string GotoPageFun
{
get { return gotoPageFun; }
set { gotoPageFun = value; }
}
private string pagerStyle = "class=\"pager\"";
/// <summary>
/// 分页div 样式 (style='' 或 class='' ) 默认: class="pager"
/// </summary>
public string PagerStyle
{
get { return pagerStyle; }
set { pagerStyle = value; }
}
private bool hasDisplayByOnlyPage = true;
/// <summary>
/// 只有一页时,是否显示分页 默认:true 显示
/// </summary>
public bool HasDisplayByOnlyPage
{
get { return hasDisplayByOnlyPage; }
set { hasDisplayByOnlyPage = value; }
}
}