分页,如果用JS在前台分页,我觉得对SEO不利(js这东西确实是个好东西,但有时候,得考滤SEO),所以写了个ASP.NET 不用控件进行分页,直接从后台输出的,带页码的分页函数,如果您有用,可以参考
进入页面时接收参数:
if (Request["page"] != null)
{
if (!int.TryParse(Request["page"].ToString(), out pageindex))
{
Response.End();
return;
}
}
分页时用到的字段,写在pageload上面
//分页用到的字段
protected int pageindex = 1;
protected int pagesize = 1;
protected int startIndex = 1;
protected int endIndex = 0;
protected int preIndex = 0;
protected int nextIndex = 0;
方法 :
protected string FenYe(int pageindex, int pagesize)
{
StringBuilder sbFenye = new StringBuilder();
decimal rc = 0;
DataSet ds = GetData.XXXX;//这里是从后台获取的DataSet列表
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
rc = decimal.Parse(ds.Tables[0].Rows[0][0].ToString());
int totalpage = Convert.ToInt32(Math.Ceiling(rc / pagesize).ToString());
nextIndex = pageindex + 1;
preIndex = pageindex - 1;
string nextStr = "";
string preStr = "";
if (nextIndex > totalpage)
{
nextStr = "";
}
else
{
nextStr = "<a href=\"default.aspx?page=" + nextIndex + "\"> 下一页 </a>";
}
if (pageindex == 1)
{
preStr = "";
}
else
{
preStr = "<a href=\"default.aspx?page=" + preIndex + "\"> 上一页 </a>";
}
sbFenye.Append("<div class=\"scott\">");
sbFenye.Append("总记录:"+ rc +" 总页数:"+totalpage+" ");
if (pageindex != 1)
{
sbFenye.Append("<a href=\"default.aspx?page=1\">首页</a>");
}
sbFenye.Append(preStr);
int Step = 5;
int LeftNum = 0;
int RightNum = 0;
if ((pageindex - Step) < 1)
{
LeftNum = 1;
}
else
{
LeftNum = pageindex - Step;
}
if ( (pageindex + Step) > totalpage)
{
RightNum = totalpage;
}
else
{
RightNum = pageindex + Step;
}
for (int i = LeftNum; i <= RightNum; i++)
{
if (i==pageindex)
{
sbFenye.Append("<span class=\"current\">" + i.ToString() + "</span>");
}
else
{
sbFenye.Append("<a href=\"default.aspx?page=" + i + "\">" +i.ToString() + "</a>");
}
}
sbFenye.Append(nextStr);
if (pageindex != totalpage)
{
sbFenye.Append("<a href=\"default.aspx?page=" + totalpage + "\">尾页</a>");
}
sbFenye.Append("</div>");
}
return sbFenye.ToString();
}
前台输出
<%=FenYe(pageindex,pagesize)%>
前台列表:
<%= PageList(pageindex,pagesize) %>
PageList为后台.cs里写的读取列表的方法
标签:ASP.NET C# 后台输出的带页码的分页函数
前台CSS样式:
DIV.scott {
PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 3px; PADDING-TOP: 3px; TEXT-ALIGN: center
}
DIV.scott A {
BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; BORDER-LEFT: #ddd 1px solid; COLOR: #88af3f; MARGIN-RIGHT: 2px; PADDING-TOP: 2px; BORDER-BOTTOM: #ddd 1px solid; TEXT-DECORATION: none
}
DIV.scott A:hover {
BORDER-RIGHT: #85bd1e 1px solid; BORDER-TOP: #85bd1e 1px solid; BORDER-LEFT: #85bd1e 1px solid; COLOR: #638425; BORDER-BOTTOM: #85bd1e 1px solid; BACKGROUND-COLOR: #f1ffd6
}
DIV.scott A:active {
BORDER-RIGHT: #85bd1e 1px solid; BORDER-TOP: #85bd1e 1px solid; BORDER-LEFT: #85bd1e 1px solid; COLOR: #638425; BORDER-BOTTOM: #85bd1e 1px solid; BACKGROUND-COLOR: #f1ffd6
}
DIV.scott SPAN.current {
BORDER-RIGHT: #b2e05d 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #b2e05d 1px solid; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; BORDER-LEFT: #b2e05d 1px solid; COLOR: #fff; MARGIN-RIGHT: 2px; PADDING-TOP: 2px; BORDER-BOTTOM: #b2e05d 1px solid; BACKGROUND-COLOR: #b2e05d
}
DIV.scott SPAN.disabled {
BORDER-RIGHT: #f3f3f3 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #f3f3f3 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; BORDER-LEFT: #f3f3f3 1px solid; COLOR: #ccc; MARGIN-RIGHT: 2px; PADDING-TOP: 2px; BORDER-BOTTOM: #f3f3f3 1px solid
}