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

 /// <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云计算培训业蓬勃发展. 云计算早已 ...

  2. linux中快速查找文件

    在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访 ...

  3. 集成学习_Bagging 和随机森林(rf)

       集成学习方式总共有3种:bagging-(RF).boosting-(GBDT/Adaboost/XGBOOST).stacking      下面将对Bagging 进行介绍:(如下图所示) ...

  4. 【vue】挂载点概念

    ## vue vue是mvvm模型,自底向上逐层应用,用于构建用户界面的渐进式框架. ### 挂载点.模板.实例 挂载点,vue仅处理挂点下面的内容(dom节点).挂载点内部的为模板. <div ...

  5. 新版本的molar mass(uva-1586)明明debug过了,各种测试还是WA真是气死我了

    #include <bits/stdc++.h> using namespace std; double trans(string a) { stringstream ss; ss< ...

  6. js用正则表达式将英文引号字符替换为中文引号字符

    <script> $(function(){ var str='"我是英文版的引号",我要变成"中文版的引号"'; alert(replaceDqm ...

  7. linux - redis基础

    目录 linux - redis基础 redis 源码编译安装 redis 数据结构 1. strings类型 2. list 类型 3. sets集合类型 有序集合 5. 哈希数据结构 centos ...

  8. 基于Python3.7和opencv的人脸识别(含数据收集,模型训练)

    前言 第一次写博客,有点紧张和兴奋.废话不多说,直接进入正题.如果你渴望使你的电脑能够进行人脸识别:如果你不想了解什么c++.底层算法:如果你也不想买什么树莓派,安装什么几个G的opencv:如果你和 ...

  9. padding填充与box-sizing: border-box配合使用

    不管伸缩盒还是浮动盒子,只要使用到padding,就必须使用 box-sizing: border-box;     有图片的时候,需摇与其他文字对齐的时候,在图片的外层加个:vertical-ali ...

  10. everyday two problems / 3.11 - 3.17

    7日共14题,因为3.14两题相同,所以实际总共13题 13道题分为难易两部分,没有按照时间顺序排列题目 A.易: 1.覆盖数字的数量 题意: 给出一段从A - B的区间S(A,B为整数) 这段区间内 ...