我学习的自定义ASP.NET分页控件
2024-10-07 18:56:25
public class MyPagecontroll
{
public int TotalCount { get; set; }//数据的总条数
public int PageSize { get; set; }//每一页的显示条数
public int CurrentPageIndex { get; set; }//当前是页码数,也就是说明当前是第几页
public int MaxPageCount { get; set; }//用于显示当前页码条的数量
public string UrlFormat { get; set; }//绘制当前的Url
public int PageCount { get; set; }
public MyPagecontroll()
{
PageSize = Convert.ToInt32(ConfigurationManager.ConnectionStrings["PageSize"].ConnectionString);
MaxPageCount = Convert.ToInt32(ConfigurationManager.ConnectionStrings["MaxPageCount"].ConnectionString);
PageCount = (int)Math.Ceiling((double)TotalCount / PageSize); }
public void SetCurrentPageIndex(string pn)
{
int tempPageIndex;
if (int.TryParse(pn, out tempPageIndex))
{
CurrentPageIndex = tempPageIndex;
}
else
{
CurrentPageIndex = ;
}
}
public string GetPageLink(int page, string txt)
{
StringBuilder sb = new StringBuilder();
string url = UrlFormat.Replace("{n}", page.ToString());
sb.Append("<a href='").Append(url).Append(">").Append(txt).Append("</>");
return sb.ToString();
}
public string Render()
{
StringBuilder sb = new StringBuilder();
int visibleStart = CurrentPageIndex - MaxPageCount / ;
if (visibleStart < )
{
visibleStart = ;
}
int viszbleEnd = visibleStart + MaxPageCount;
if (viszbleEnd > PageCount)
{
viszbleEnd = PageCount;
}
if (CurrentPageIndex > )
{
sb.Append(GetPageLink(, "首页"));
sb.Append(GetPageLink(CurrentPageIndex - , "上一页"));
}
else
{
sb.Append("<span>首页</span>");
sb.Append("<span>上一页</span>");
}
for (int i = visibleStart; i <= viszbleEnd; i++)
{
if (i == CurrentPageIndex)
{
sb.Append("<span>").Append(i).Append("</span>");
}
else
{
sb.Append(GetPageLink(i, i.ToString()));
}
}
if (CurrentPageIndex < PageCount)
{
sb.Append(GetPageLink(CurrentPageIndex + , "下一页"));
sb.Append(GetPageLink(PageCount + , "末页"));
}
else
{
sb.Append("<span>下一页</span>");
sb.Append("<span>末页</span>");
}
return sb.ToString();
}
}
最新文章
- Springmvc数据校验
- 网站flash黑屏问题
- OSG osgDB FileUtils FileNameUtil操作文件名相关函数
- 用CSS3实现文字描边
- easyui使用技巧
- React-Native入门指导之iOS篇
- HDU 3696 Farm Game(dp+拓扑排序)
- 用pip爽久了,竟然完了easy install安装过程了
- EasyUI中combotree允许多选的时候onSelect事件会重复触发onCheck事件
- android 添加左右滑屏手势
- Linux上leveldb的安装和使用
- jenkins+gitlab配置
- C#连接和操作Oracle数据
- myeclipse debug模式 报错source not found
- 使用Kotlin开发Android应用
- javascript的fn方法(转)
- mysql数据同步
- Decker容器使用
- openssh 在32位、64位操作系统上的安装配置
- JAVA 集合随笔