最近在找工作,然后朋友让帮忙弄一个自定义的分页组件,写完以后就把代码传过来了。大家可以一起学习讨论一下,做的比较陋鸡,忘大神指点一二
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
namespace CodeWebApi
{
public static class MyHtmlHelper
{
/// <summary>
/// 我的分页控件
/// </summary>
/// <param name="helper"></param>
/// <param name="PageIndex">当前页</param>
/// <param name="PageSize">分页大小</param>
/// <param name="AllCount">总页数</param>
/// <param name="address">控制器</param>
/// <param name="AspnetSize">显示分页数目</param>
/// <returns></returns>
public static MvcHtmlString MyAspnetPager(this HtmlHelper helper,
int PageIndex,
int PageSize,
int AllCount,
string address,
int AspnetSize = 5)
{
int AllPage = AllCount / PageSize;
AllPage += AllCount % PageSize > 1 ? 1 : 0;
StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.Append("<nav aria-label=\"Page navigation\">");
htmlBuilder.Append("<ul class=\"pagination \">");
if (PageIndex == 1)
{
htmlBuilder.Append("<li class=\"disabled\">");
htmlBuilder.Append("<span aria-hidden=\"true\">«</span>");
htmlBuilder.Append("</li>");
}
else
{
htmlBuilder.Append("<li><a href=\""+ address + "?page=1\" aria-label=\"Previous\"><span aria-hidden=\"true\">«</span></a></li>");
}
int MaxPage = AllPage;
if (AllPage > AspnetSize)
{
if (PageIndex < AspnetSize / 2 + 1)
{
MaxPage = AspnetSize;
}
else if (PageIndex > AllPage - AspnetSize / 2)
{
MaxPage = AllPage;
}
else
{
MaxPage = PageIndex + AspnetSize / 2;
}
}
for (int i = MaxPage - AspnetSize + 1 < 1 ? 1 : MaxPage - AspnetSize + 1; i <= MaxPage; i++)
{
if (i == PageIndex)
{
htmlBuilder.Append("<li class=\"active\"><span>" + i + "</span></li>");
}
else
{
TagBuilder tagBuilder = new TagBuilder("a");
//回调参数我这就叫page 了,不喜欢自己可以改
tagBuilder.MergeAttribute("href", address + "?page=" + i);
tagBuilder.InnerHtml = i.ToString();
htmlBuilder.Append("<li>"+tagBuilder.ToString()+"</ li>");
}
}
if (PageIndex == AllPage)
{
htmlBuilder.Append("<li class=\"disabled\">");
htmlBuilder.Append("<span aria-hidden=\"true\">»</span>");
htmlBuilder.Append("</li>");
}
else
{
htmlBuilder.Append("<li><a href=\"" + address + "?page=" + AllPage + "\" aria-label=\"Previous\"><span aria-hidden=\"true\">»</span></a></li>");
}
htmlBuilder.Append("</ ul>");
htmlBuilder.Append("</ nav>");
return MvcHtmlString.Create(htmlBuilder.ToString());
}
}
}
使用也比较简单 直接在页面调用就行了
@Html.MyAspnetPager(CurrenPage, PageSize, totleCount,"index", 8);
//当前页码 //单页数量 //总响应条数 //回调控制器 //分页按钮数量
有什么其它需求请自行调整 ,PS UI直接用的bootstrapUI 需要其它UI也可以自行编辑修改

博主应朋友要求完成一个自定义分页组件,将代码分享出来供大家学习讨论。该组件使用简单,直接在页面调用即可,UI采用bootstrapUI,有其他需求可自行调整修改。
2918

被折叠的 条评论
为什么被折叠?



