public class paging
{
#region "分页实体类"
private int _page;
public int Page
{
get { return _page; }
set { _page = value; }
}
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
private string _css;
public string Css
{
get { return _css; }
set { _css = value; }
}
#endregion
}
public class Paging
{
#region "分页实现方法"
/// <summary>
/// 分页
/// </summary>
/// <param name="page_count">总页数</param>
/// <param name="page_now">当前页</param>
/// <returns></returns>
public static List<paging> get(int page_count, int page_now)
{
List<paging> list = new List<paging>();
int page_star;
if (page_count <= 9) { page_star = 1; }
else
{
if (page_now > 5) { page_star = page_now - 4; } else { page_star = 1; }
if (page_count - page_now < 5) { page_star = page_count - 8; }
}
//可以加IF判断总页数如果是1 可以不执行下面代码,当页码只有一页时候没有分页
if (page_count > 0)
{
paging item = null;
item = new paging();
item.Page = 1;
item.Name = "首页";//定义首页文字
list.Add(item);
item = new paging();
item.Page = page_now > 1 ? page_now - 1 : 1;
item.Name = "上一页";//定义上一页文字
list.Add(item);
if (page_now > 5)
{
item = new paging();
item.Name = "...";
item.Page = page_now - 5;
list.Add(item);
}
for (int i = page_star; i < page_star + 9 && i <= page_count; i++)
{
item = new paging();
item.Page = i;
item.Name = i + "";
if (i == page_now)
item.Css = "thisclass";//当前页class样式
list.Add(item);
}
if (page_count > 9 && page_count - page_now > 4)
{
item = new paging();
item.Name = "...";
item.Page = page_star + 9;
list.Add(item);
}
item = new paging();
item.Page = page_now == page_count ? page_count : page_now + 1;
item.Name = "下一页";//定义下一页
list.Add(item);
item = new paging();
item.Page = page_count;
item.Name = "末页";//定义尾页文字
list.Add(item);
}
return list;
}
#endregion
}
页面后台:
绑定分页Repeater
int count = obj.NEW_CONTENT_COUNT(sort);
int pagecount = 10;//每页的条数
int page = count / pagecount;
page = count % pagecount != 0 ? page + 1 : page;
int PNOW = Convert.ToInt32(hidpage.Value);
if (PNOW > page)
PNOW = page;
rep_page.DataSource = Paging.get(page, PNOW);
rep_page.DataBind();
分页LinkButton的Command
protected void lk_page_Command(object sender, CommandEventArgs e)
{
hidpage.Value = e.CommandName;
loding();
}
页面前台:
<asp:Repeater ID="rep_page" runat="server">
<ItemTemplate>
<li class='<%#Eval("Css") %>'>
<asp:LinkButton ID="lk_page" CommandName='<%#Eval("Page") %>' runat="server" OnCommand="lk_page_Command"><%#Eval("name") %></asp:LinkButton>
</li>
</ItemTemplate>
</asp:Repeater>
<asp:HiddenField ID="hidpage" Value="1" runat="server" />
这样写地址栏美观,但是不利于SEO.效率不知道和别的分页方法那个好. 请多指教.