您的位置:首页 > 编程语言 > ASP

ASP.NET C# 后台输出的带页码的分页函数(不用控件)

2013-11-14 11:50 357 查看
分页,如果用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
}




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: