Asp.Net自定义控件分页功能
来源:互联网 发布:做淘宝猝死 编辑:程序博客网 时间:2024/06/05 04:53
前台页面
<%@ Register Src="~/Controls/Pages.ascx" TagPrefix="uc1" TagName="pagers"%>
<div class="pageclass">
<uc1:pagers ID="pages1" PageSize="10" runat="server" />
</div>
样式
<style type="text/css">
/*分页*/
.pageclass{width: 100%;margin-top:8px;}
.pageclass ul{float:left;}
.pageclass li{color: #C1DEF7; float: left; background: #C1DEF7; border: 1px solid #8BC5F7; margin-right: 5px; display:inline; font-size:13px; }
.pageclass a{color: #3D85C4; padding: 0em 0.4em 0em 0.4em; line-height: 20px; display: block; }
.pageclass a:hover, .pageclass li.on a{ color: white; font-weight: bolder; background: #759CBF; text-decoration: none; }
.pageinput{border:1px solid #CCCCCC;width:25px; height:13px;}
.pagecheck a{color:white; background-color:#6C9BC4;}
</style>
前台代码
//@TableName nvarchar(100),--表名
//@Fileds nvarchar(300),--字段(id,name)
//@Pagesize int ,--每页大小
//@OrderByFiled nvarchar(50),--排序字段
//@CurrentPagesize int,--当前页码
//@Wheres nvarchar(200),--条件
//@RecordCount int output --输出总记录
SqlParameter[] prams = new SqlParameter[]{
new SqlParameter("@TableName",SqlDbType.NVarChar),
new SqlParameter("@Fileds",SqlDbType.NVarChar),
new SqlParameter("@Pagesize",SqlDbType.Int),
new SqlParameter("@OrderByFiled",SqlDbType.NVarChar),
new SqlParameter("@CurrentPagesize",SqlDbType.Int),
new SqlParameter("@Wheres",SqlDbType.NVarChar),
new SqlParameter("@RecordCount",SqlDbType.Int)
};
prams[0].Value = "a";
prams[1].Value = "*";
prams[2].Value = pages1.PageSize;
prams[3].Value = "id";
prams[4].Value = pages1.PageIndex;
prams[5].Value = "1=1";
prams[6].Direction = ParameterDirection.Output;
gridview1.DataSource = sql.ExecuteDataTable("AspNetPage", prams);
gridview1.DataBind();
pages1.RecordCount = int.Parse(prams[6].Value.ToString());
pages1.UrlFormat = "?i={0}";
自定义控件代码
public partial class Pages : System.Web.UI.UserControl
{
private string urlFormat;
private int pageSize = 30;
private int recordCount;
private int pageCount = 5;
/// <summary>
/// 连接格式
/// </summary>
public string UrlFormat
{
get
{
return urlFormat;
}
set
{
urlFormat = value;
}
}
/// <summary>
/// 页长度
/// </summary>
public int PageSize
{
get
{
return pageSize;
}
set
{
pageSize = value;
}
}
/// <summary>
/// 当前页码
/// </summary>
public int PageIndex
{
get
{
string pageindex = HttpContext.Current.Request.QueryString["i"];
if (pageindex != null)
{
return int.Parse(pageindex);
}
return 1;
}
}
/// <summary>
/// 总记录数
/// </summary>
public int RecordCount
{
get
{
return recordCount;
}
set
{
recordCount = value;
}
}
/// <summary>
/// 两边显示个数
/// </summary>
public int PageCount
{
get
{
return pageCount;
}
set
{
pageCount = value;
}
}
protected override void Render(HtmlTextWriter writer)
{
if (recordCount == 0)
return;
int SumPage = (recordCount + pageSize - 1) / pageSize;
int start = PageIndex - PageCount;
int end = PageIndex + PageCount;
//以PageIndex为中心,前后个显示Page个页码导航
if (SumPage > (pageCount * 2 + 1))
{
if (start < 1)
{
start = 1;
end = start + 10;
}
else if (end > SumPage)
{
start = SumPage - 10;
end = SumPage;
}
}
else
{
start = 1;
end = SumPage;
}
string tmp = "<li><a href=/"" + UrlFormat + "/">{0}</a></li>";
StringBuilder sb = new StringBuilder(string.Format("<ul><li><a>页次:{0}/{1} 每页:{2} 条 共计:{3} 条</a></li>", PageIndex, SumPage, pageSize, recordCount));
if (PageIndex > 1)
{
sb.Append(string.Format("<li><a href=/"" + urlFormat + "/">首页</a></li>", 1));
sb.Append(string.Format("<li><a href=/"" + urlFormat + "/">上一页</a></li>", PageIndex - 1));
}
for (int i = start; i <= end; i++)
{
if (i == PageIndex)
{
sb.Append("<li class=/"pagecheck/"><a href=/"#/">" + PageIndex.ToString() + "</a></li>");
}
else
{
sb.Append(string.Format(tmp, i));
}
}
if (PageIndex < SumPage)
{
sb.Append(string.Format("<li><a href=/"" + urlFormat + "/">下一页</a></li>", PageIndex + 1));
sb.Append(string.Format("<li><a href=/"" + urlFormat + "/">尾页</a></li>", SumPage));
}
writer.Write(sb.ToString());
}
protected void PageLoad(object sender, EventArgs e)
{
}
}
- Asp.Net自定义控件分页功能
- asp.net自定义分页控件
- ASP.NET:DataGrid控件的分页功能
- ASP.NET:DataGrid控件的分页功能
- ASP.NET DataList控件分页功能
- ASP.net中的Datagrid自定义分页功能
- ASP.net中的Datagrid自定义分页功能
- Asp.Net 可自定义分页用户控件
- 自定义分页控件源码asp.net(c#)
- asp.net web页面自定义分页控件
- asp.net分页功能
- asp.net分页功能
- asp.net分页控件
- asp.net分页控件
- ASP.NET分页控件
- asp.net 自定义分页
- asp.net 自定义分页
- ASP.NET中Repeater控件实现分页功能
- 策略模式
- OpenCV读取AVI文件
- MTK开发中一些经验总结
- 人要知足
- JSP的内置对象及方法
- Asp.Net自定义控件分页功能
- UVA 10678 The Grazing Cow
- c#注册全局热键
- 暑假小计划
- Visual C++/MFC入门教程(一)
- 近八成公司业绩预喜 中报行情或可期待
- 我要开始在这里记录我的工程师成长之路2011.6.25
- 市场阶段底部已现 整固后还有更大反弹空间
- ubuntu10.10下安装五笔86输入法