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

 /// <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. 零基础学习Linux培训,应该选择哪个培训班?

    云计算早已不是什么稀奇的概念,它的火爆让Linux运维工程师这个职业越来越重要.在当今各类云平台提供的系统中,Linux系统几乎毫无争议的独占鳌头,市场份额进一步扩张. 这也让Linux运维工程师职位 ...

  2. 1.Linux入门介绍

    1.1 Linux概述 1.1.1 Linux简要介绍 Linux的由来: Linux的内核最初是由芬兰人李纳斯·托瓦茨在上大学的时候编写的一个内核,它是基于Unix操作系统编写的 大多服务器使用的是 ...

  3. Codevs P1017 乘积最大

    P1017 乘积最大 题目描述 Description 今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的 ...

  4. 腾讯云,搭建LNMP环境

    LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构. Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统.代表版本有:debian.centos ...

  5. bupt summer training for 16 #8 ——字符串处理

    https://vjudge.net/contest/175596#overview A.设第i次出现的位置左右端点分别为Li,Ri 初始化L0 = 0,则有ans = sum{ (L[i] - L[ ...

  6. lead 函数和 lag函数

    这两个函数的作用只能通过例子来解释,否则说不明白. 首先创建一个表 SQL> create table test (id number, name varchar2(8), val number ...

  7. iOS开发使用Unwind Segue进行返回

    我们在之前的一篇博客中谈到怎样使用dismissViewControllerAnimation()的方法在iOS中返回,如今我们有一个更为方便的方法来实现界面跳转之后的返回操作.使用的是Unwind ...

  8. SAP 金税接口增强 BADI

      SAP与金税连接有两种方式:组件接口及文本接口. 文本接口为例: 1.SAP取发票数据.主要来自合同,销售订单,交货单.发票,客户供应商主数据等 2.SAP处理:合并.拆分,折扣等 3.导出TXT ...

  9. 计算几何 二维凸包问题 Andrew算法

    凸包:把给定点包围在内部的.面积最小的凸多边形. Andrew算法是Graham算法的变种,速度更快稳定性也更好. 首先把全部点排序.依照第一keywordx第二keywordy从小到大排序,删除反复 ...

  10. 【JavaScript】正則表達式

    正則表達式,也不是第一次与它见面了.在我们学习ASP.NET视频的时候,验证控件的那个实例中.就有提到过它. 那个时候.都是在控件的属性中自己设置的,用的原理就是正則表達式,当时得感觉就是方便,强大, ...