无聊,第一次写博客,自己动手写了一个分页控件。由于我是新手,有很多地方写得不够好,希望各位大牛多多指正。哈哈哈

 /// <summary>
/// 分页控件
/// </summary>
public class Pager
{
/// <summary>
/// 每页记录行数参数名称
/// </summary>
public string PageSizeName { get; set; }
/// <summary>
/// 分页当前索引页参数名称
/// </summary>
public string PageIndexName { get; set; } /// <summary>
/// 每页记录行数
/// </summary>
public int PageSize { get; private set; }
/// <summary>
/// 分页当前索引页
/// </summary>
public int PageIndex { get; private set; }
/// <summary>
/// 总记录行数
/// </summary>
public int TotalCount { get; private set; }
/// <summary>
/// 分页摁钮最大显示数量
/// </summary>
public int MaxDisplayCount { get; set; } /// <summary>
/// 是否显示上一页摁钮
/// </summary>
public bool ShowPrevPage { get; set; }
/// <summary>
/// 是否显示下一页摁钮
/// </summary>
public bool ShowNextPage { get; set; }
/// <summary>
/// 是否显示第一页摁钮
/// </summary>
public bool ShowFirstPage { get; set; }
/// <summary>
/// 是否显示最后一页摁钮
/// </summary>
public bool ShowLastPage { get; set; } /// <summary>
/// 上一页摁钮显示文本
/// </summary>
public string PrevPageText { get; set; }
/// <summary>
/// 下一页摁钮显示文本
/// </summary>
public string NextPageText { get; set; }
/// <summary>
/// 第一页摁钮显示文本
/// </summary>
public string FirstPageText { get; set; }
/// <summary>
/// 最后一页摁钮显示文本
/// </summary>
public string LastPageText { get; set; } /// <summary>
/// 上一页摁钮样式
/// </summary>
public string PrevPageClass { get; set; }
/// <summary>
/// 下一页摁钮样式
/// </summary>
public string NextPageClass { get; set; }
/// <summary>
/// 第一页摁钮样式
/// </summary>
public string FirstPageClass { get; set; }
/// <summary>
/// 最后一页摁钮样式
/// </summary>
public string LastPageClass { get; set; } /// <summary>
/// 普通分页摁钮样式
/// </summary>
public string ANormalClass { get; set; }
/// <summary>
/// 选中分页摁钮样式
/// </summary>
public string ACurrentClass { get; set; } /// <summary>
/// 分页控件构造函数
/// </summary>
/// <param name="PageIndex">当前选中页索引</param>
/// <param name="PageSize">每页显示记录行数</param>
/// <param name="TotalCount">总记录行数</param>
/// <param name="UrlAndQuery">分页控件回传地址</param>
public Pager(int PageIndex, int PageSize, int TotalCount)
{
this.PageSize = PageSize;
this.PageIndex = PageIndex;
this.TotalCount = TotalCount;
this.MaxDisplayCount = ; this.PageSizeName = "PageSize";
this.PageIndexName = "PageIndex";
this.ACurrentClass = "current"; this.ShowPrevPage = true;
this.ShowNextPage = true;
this.ShowFirstPage = true;
this.ShowLastPage = true; this.PrevPageText = "<";
this.NextPageText = ">";
this.FirstPageText = "|<";
this.LastPageText = ">|";
} /// <summary>
/// 生成分页控件Html代码段
/// </summary>
/// <returns></returns>
public string GeneratePagerHtml()
{
// 解析Url,对分页索引键值进行特殊处理
var request = HttpContext.Current.Request;
var keys = request.QueryString.AllKeys;
var paramList = new List<string>();
if (keys.HasItem())
{
foreach (var key in keys)
{
if (key == PageIndexName)
{
continue;
}
var value = HttpUtility.UrlEncode(request.QueryString[key]);
paramList.Add(string.Format("{0}={1}", key, value));
}
}
paramList.Add(string.Format("{0}=", PageIndexName));
var query = paramList.Join("&"); // 对分页摁钮显示的数量和范围做处理
var PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
var startPage = PageIndex - MaxDisplayCount / + ;
startPage = startPage < ? : startPage;
var endPage = startPage + MaxDisplayCount - ;
endPage = endPage > PageCount ? PageCount : endPage;
startPage = endPage - MaxDisplayCount + ;
startPage = startPage < ? : startPage; var a = "<a href=\"?{0}{1}\" class=\"{2}\">{3}</a>";
var aString = new StringBuilder();
for (var nowPage = startPage; nowPage <= endPage; ++nowPage)
{
var nowAClass = nowPage == PageIndex ? ACurrentClass : ANormalClass;
aString.AppendFormat(a, query, nowPage, nowAClass, nowPage);
} // 对上一页摁钮做处理
string PrevPage = null;
if (ShowPrevPage)
{
var PrevPageIndex = PageIndex - ;
PrevPageIndex = PrevPageIndex < ? : PrevPageIndex;
PrevPage = string.Format(a, query, PrevPageIndex, PrevPageClass, PrevPageText);
} // 对下一页摁钮做处理
string NextPage = null;
if (ShowNextPage)
{
var NextPageIndex = PageIndex + ;
NextPageIndex = NextPageIndex > PageCount ? PageCount : NextPageIndex;
NextPage = string.Format(a, query, NextPageIndex, NextPageClass, NextPageText);
} // 对第一页摁钮做处理
string FirstPage = null;
if (ShowFirstPage)
{
FirstPage = string.Format(a, query, , FirstPageClass, FirstPageText);
} // 对最后一页摁钮做处理
string LastPage = null;
if (ShowLastPage)
{
LastPage = string.Format(a, query, PageCount, LastPageClass, LastPageText);
} // 分页控件Html代码段
var htmlTemp = "<div>{0}{1}{2}{3}{4}</div><div>第 {5}/{6} 页,{7} 条/页,共 {8} 条记录</div>";
var PagerHtml = string.Format(htmlTemp, FirstPage, PrevPage, aString, NextPage, LastPage, PageIndex, PageCount, PageSize, TotalCount); return PagerHtml;
}
}

Default.aspx.cs:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AspNetPager; namespace Test5
{
public partial class _Default : System.Web.UI.Page
{
public int PageIndex
{
get
{
var pageIndex = ;
try
{
pageIndex = Convert.ToInt32(Request.QueryString["PageIndex"].ToString());
}
catch { }
return pageIndex;
}
} public int PageSize
{
get
{
var PageSize = ;
try
{
PageSize = Convert.ToInt32(Request.QueryString["PageSize"].ToString());
}
catch { }
return PageSize;
}
} protected void Page_Load(object sender, EventArgs e)
{
var pager = new Pager(PageIndex, PageSize, );
this.Pager.InnerHtml = pager.CeneratePagerHtml();
}
}
}

Default.aspx:

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Test5._Default" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.pager a
{
color: Blue;
width: 40px;
height: 25px;
border: 1px solid #CCC;
margin: 0px 5px;
text-align: center;
line-height: 25px;
vertical-align: middle;
text-decoration: none;
display: inline-block;
}
.pager a:hover, .pager a.current
{
background-color: #555;
color: White;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div id="Pager" runat="server" class="pager">
</div>
</form>
</body>
</html>

小白写的一个ASP.NET分页控件,仅供娱乐的更多相关文章

  1. asp.net分页控件

    一.说明 AspNetPager.dll这个分页控件主要用于asp.net webform网站,现将整理代码如下 二.代码 1.首先在测试页面Default.aspx页面添加引用 <%@ Reg ...

  2. 自己动手用Javascript写一个无刷新分页控件

    .NET技术交流群:337901356 ,欢迎您的加入! 对 于一个用户体验好的网站来说,无刷新技术是很重要的,无刷新,顾名思义,就是局部刷新数据,有用过Asp.net Web Form技术开发网页的 ...

  3. asp.net分页控件库

    AspNetPager分页控件 AspNetPager分页控件解决了分页中的很多问题,直接采用该控件进行分页处理,会将繁琐的分页工作变得简单化,下面是我如何使用AspNetPager控件进行分页处理的 ...

  4. 【asp.net爬虫】asp.NET分页控件抓取第n页数据 javascript:__doPostBack

    最近在模拟HTTP请求抓取数据,但是服务器是asp.net开发的 分页控件代码 <tr> <td align="left">共&nbsp210&am ...

  5. 自己写的简单的jQuery分页控件

    因为是内部项目,需要分页控件,网上找了一大堆,给领导一看,都说不行,原因很简单,太复杂,领导就想要个简单点的,类似百度的分页,可是自己也没写过Jquery控件,硬着头皮找了些资料,写了这个分页控件,目 ...

  6. ASP.NET 分页控件

    using System; using System.ComponentModel; using System.Web; using System.Web.UI; using System.Web.U ...

  7. 对自写的Asp.Net分页控件的应用方式(异步无刷新分页)

    前台代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" co ...

  8. 我学习的自定义ASP.NET分页控件

    public class MyPagecontroll { public int TotalCount { get; set; }//数据的总条数 public int PageSize { get; ...

  9. .net分页控件简单实现

    .net分页控件简单实现 好久好久没写博客了.....最近写了一个.net的分页控件,放到园子里...你觉得好,就点个赞,不好呢,就告诉我为啥吧.... 是使用Request.QueryString的 ...

随机推荐

  1. (5.2.1)配置服务器参数——即时文件初始化(IFI)

    关键词:零填充,即时文件初始化 转自:https://www.cnblogs.com/gaizai/p/3516905.html 概念: 所有新申请的空间,sql server都要以0来填充完磁盘文件 ...

  2. 学不好Linux?我们分析看看正确的学习方法是什么-马哥教育

    2018年里,Linux运维的职位数量和平均薪资水平仍然持续了去年的强劲增幅,比很多开发岗位涨的都快.从研究机构的数据来看,Linux职位数量和工资水平涨幅均在IT行业的前五之列,比去年的表现还要好一 ...

  3. UpLoadify在IE下兼容问题

    一.在IE9.IE10不能点击的问题解决 解决方法:进入uploadify的js文件中,搜索SWFUpload.prototype.getFlashHTML,找到它对应的语句,将方法全部替换为以下内容 ...

  4. 51nod1006 -最长公共子序列Lcs【动态规划】

    给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的). 比如两个串为: abcicba abdkscab ab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最 ...

  5. JS练习:商品的左右选择

    代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title ...

  6. 【codeforces 509C】Sums of Digits

    [题目链接]:http://codeforces.com/contest/509/problem/C [题意] 给你一个数组b[i] 要求一个严格升序的数组a[i]; 使得a[i]是b[i]各个位上的 ...

  7. CODEVS2144 砝码称重2 (哈希表)

    由于m很大,所以不能使用DP. 注意到n≤30,直接暴力2^n会TLE. 所以,将砝码平均分成两份,对一份进行一次暴力,用哈希表存下可能的结果. 对下一份再进行一次暴力,在哈希表中搜索剩余的砝码重量是 ...

  8. nyoj_676_小明的求助_201312042142-2

    小明的求助 时间限制:2000 ms  |           内存限制:65535 KB 难度:2   描述 小明对数学很有兴趣,今天老师出了道作业题,让他求整数N的后M位,他瞬间感觉老师在作弄他, ...

  9. ZooKeeper可视化Web管理工具收集(待实践)

    原来ZooKeeper是有Web管理后台的.但是仅限于操作ZooKeeper的数据,如果要监控性能,估计要借助Nagios去配合. 这些工具应该ZK UI最好用,下面是收集的一些工具安装教程: htt ...

  10. HDU 5288

    //枚举因子,查找和i最近的左右是i因子的点即可. #include <iostream> #include <cstdio> #include <algorithm&g ...