- 浏览: 755897 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
liuweihug:
.net的请参考:Jquery+asp.net 后台数据传到前 ...
jquery ajax POST 例子详解 -
topbox163:
LZ,有LINUX 64位的WEBLOGIC没?
WebLogic11g|Oracle WebLogic Server 11gR1|下载
页码控件源码|分页页码控件源码
[assembly: TagPrefix("WebPages", "WebPages")] //XXX为自定义控件的名称空间,YYY为你所想要得名字
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
using System.Collections;
namespace WebPages
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:Pages runat=\"server\"></{0}:Pages>")]
public class Pages : WebControl
{
private int _CuttentPage;
private int _NumCount;
private int _PageSize = 1;
private string _Url = "";
private string _RewriteFormat = "";
private string _RewriteRegex = "";
private Dictionary<string, string> _regs;
public int CurrentPage
{
set
{
if (Regex.IsMatch(Convert.ToString(value), "^\\d+$"))
{
this._CuttentPage = Convert.ToInt32(value);
}
else
{
this._CuttentPage = 0;
}
}
get
{
return this._CuttentPage;
}
}
public int NumCount
{
set
{
if (Regex.IsMatch(Convert.ToString(value), "^\\d+$"))
{
this._NumCount = Convert.ToInt32(value);
}
else
{
this._NumCount = 0;
}
}
get
{
return this._NumCount;
}
}
public int PageSize
{
set
{
if (Regex.IsMatch(Convert.ToString(value), "^\\d+$"))
{
this._PageSize = Convert.ToInt32(value);
}
else
{
this._PageSize = 1;
}
}
get
{
return this._PageSize;
}
}
//地址
public string Url
{
set
{
_Url = value;
}
get
{
if (string.IsNullOrEmpty(_Url))
{
try
{
_Url = this.Parent.Page.Request.Url.ToString();
}
catch
{
_Url = "";
}
}
return this._Url;
}
}
public string RewriteFormat
{
set { this._RewriteFormat = value; }
get { return this._RewriteFormat; }
}
public string RewriteRegex
{
set { _RewriteRegex = value; }
get { return this._RewriteRegex; }
}
public Dictionary<string, string> Regs
{
set {
this._regs = value;
}
get {
if (_regs == null) {
_regs = new Dictionary<string, string>();
}
return _regs;
}
}
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string Text
{
get
{
String s = (String)ViewState["Text"];
return ((s == null) ? String.Empty : s);
}
set
{
ViewState["Text"] = value;
}
}
protected string getUrl(string url)
{
MatchCollection mats = Regex.Matches(url, "(?<first>[\\w]*)=(?<two>[^&]*[\u4e00-\u9fa5]+[^&]*)", RegexOptions.IgnoreCase | RegexOptions.Multiline);
foreach (Match mat in mats)
{
url = url.Replace(mat.Groups["first"].Value + "=" + mat.Groups["two"].Value, mat.Groups["first"].Value + "=" + HttpUtility.UrlEncodeUnicode(mat.Groups["two"].Value.Trim()));
}
return url;
}
/// <summary>
/// 根据当前的页数显示的当前页的底部分页
/// </summary>
/// <param name="current"></param>
/// <param name="size"></param>
/// <param name="zong"></param>
/// <returns></returns>
protected string GetPage(int current, int size, int zong)
{
string url = this.Url;
url = getUrl(url);
string urltemp ="";
urltemp = url.IndexOf("page=") >= 0 ? (Regex.Replace(url, "page=([^&]*)", "page={0}",RegexOptions.Multiline|RegexOptions.Singleline)) : (url.IndexOf("?") >= 0 ? (url + "&page={0}") : (url + "?page={0}"));
if(this.RewriteFormat.Length>0)
{
Regex reg = new Regex(RewriteRegex, RegexOptions.IgnoreCase);
if (reg.IsMatch(urltemp))
{
urltemp = reg.Replace(urltemp, RewriteFormat);
}
}
int pagecount = zong % size == 0 ? (zong / size) : (zong / size + 1);
int num = current / 10;
System.Text.StringBuilder sball = new System.Text.StringBuilder("");
int xian = current / 10 + 1;
int before = current % 10 == 0 ? (current / 10) : (current / 10);
sball.AppendFormat(" <a href='" + string.Format(urltemp, current - 1 < 1 ? ("1") : ((current - 1).ToString())) + "'>上一页</a> ");
for (int i = ((before * 10 - 5) > 0 ? (before * 10 - 5) : (1)); i <= (before * 10 == 0 ? (1) : (before * 10-1)); i++)
{
if ((before * 10 - 5) < 0)
continue;
sball.AppendFormat(" <a href='" + string.Format(urltemp, (i + 1).ToString()) + "'>{0}</a>", (i + 1).ToString());
sball.Append(" ");
}
for (int i = ((xian - 1) * 10 > pagecount ? (pagecount) : ((xian - 1) * 10)); i < (xian * 10 < pagecount ? (xian * 10) : (pagecount)); i++)
{
if (i == 0)
sball.AppendFormat("<a href='" + string.Format(urltemp, (i + 1).ToString()) + "'>").Append((i + 1)).Append("</a>");
else
sball.Append(" <a href='" + string.Format(urltemp, (i + 1).ToString()) + "'>").Append((i + 1)).Append("</a>");
}
sball.Append(" <a href='" + string.Format(urltemp, (current + 1 > pagecount ? (pagecount.ToString()) : ((current + 1).ToString()))) + "'>下一页</a>");
sball.Append(" 共").Append(zong.ToString()).Append("条 当前第 ").Append((current).ToString()).Append(" 页").Append(" 共 ").Append(pagecount).Append(" 页");
return sball.ToString();
}
protected override void RenderContents(HtmlTextWriter output)
{
string tempData = "<table border=\"0\" width=\"100%\" height=\"30px\" style=\"margin:0px\"><tr><td style=\"width: 89%\">{0}</td><td style=\"width: 30%\"><input type=\"text\" id=\"Pages1_TbPageGo\" onKeyUp=\"this.value=this.value.replace(/[^\\d]+/,'')\" style=\"width: 33px\"/><input id=\"BtGo\" style=\"width: 34px\" type=\"button\" value=\"GO\" onClick=\"document.location.href=document.location.href.indexOf('page=')>=0?(document.location.href.replace(/page=([^&]*)/,'page='+document.getElementById('Pages1_TbPageGo').value)):(document.location.href.indexOf('?')>=0?(document.location.href+'&page='+document.getElementById('Pages1_TbPageGo').value):(document.location.href+'?page='+document.getElementById('Pages1_TbPageGo').value))\"/></td></tr></table>";
output.Write(string.Format(tempData, GetPage(CurrentPage,PageSize,NumCount)));
}
}
}
发表评论
-
vs2010破解|vs2010破解方法|vs2010破解序列号
2010-08-27 13:29 1005步骤1.下载VS2010 正式 ... -
vs2008下载|vs2008中文版下载
2010-08-20 17:56 1181vs2008下载 中文版下载 官方下载地址 vs2008中文版 ... -
vs2005下载|中文版|官方
2010-08-20 18:20 1232vs2005下载,中文版,官方 为了招徕更多的拥戴者,微软把V ... -
c#多线程传值回调发邮件显示进行状态
2010-07-29 09:49 1354<!--<br/ /><br/ /& ... -
C# 去所有 html标签的代码|去除html标签代码
2010-07-23 15:12 1640C# 去所有 html标签的代 ... -
asp.net md5的加密方法|md5加密方法asp.net
2010-07-06 22:16 845asp.net md5的加密方法|md5加密方法asp.net ... -
C# 上传生成新图片代码|C#生成图片代码
2010-07-07 15:01 1028public void MakeSmallPic ... -
给xml|web.config 增加节点和属性值
2010-03-28 16:50 913给xml|web.config 增加节点和属性值 str ... -
C# 手动读写app config 的源码
2010-04-26 15:36 1024public class ConfigOperator { ... -
查询其实也是个循环,简单的例子介绍
2009-06-06 10:24 713查询其实也是个循环,简单的例子介绍 declare @Name ... -
删除附属于该类和子类的分类信息
2009-06-06 15:28 550delete from Sort where Column_I ... -
Ajax处理函数模板
2009-06-09 14:33 966Ajax处理函数模板 public void IsAjaxF ... -
新闻添加cs页面
2009-06-10 18:15 649新闻添加cs页面 using System;using Sys ... -
新闻添加html页面
2009-06-10 18:17 801新闻添加html页面 <%@ Page Language ... -
新闻列表管理页面
2009-06-10 18:18 784新闻列表管理页面 <%@ Page Language=& ... -
新闻管理cs页面
2009-06-10 18:18 803using System;using System.Data; ... -
新闻管理数据模板
2009-06-10 18:20 605using System;using System.Colle ... -
数据库连接类
2009-06-10 18:21 594using System;using System.Data; ... -
页码源码
2009-06-11 14:27 702页码源码 using System;using ... -
简单的数组排序
2009-06-15 18:23 534int[] a = new int[] { 2, 1 ...
相关推荐
总之,这份“datagidview分页控件+自定义分页控件源码”为.NET开发者提供了一套实用的解决方案,可以帮助他们构建高效、用户友好的数据展示界面。通过深入学习和实践,开发者可以掌握更多的控件定制技巧,提升项目的...
本压缩包提供了一个C#分页控件的源码,这对于理解和实现自定义分页功能非常有帮助。 1. 分页概念: 数据分页是一种数据管理策略,用于将大量数据分割成可管理的小块,每次只加载和显示一部分。在Web应用中,分页...
在这个特定的场景中,我们关注的是"ASP.NET分页控件源码",它是为了帮助开发者在网页上实现高效、用户友好的数据浏览功能。 分页控件是ASP.NET Web Forms中常见的一种组件,它主要用于处理大量数据时,以防止一次性...
本文将深入探讨“WinForm自定义分页控件源码2012621”这一项目,它提供了一种高效且灵活的方式来实现数据分页功能。 分页控件是数据展示中的常见组件,尤其在处理大量数据时,能够有效地提高界面的响应速度和用户...
本资源提供了".NET简单的分页控件源码",它旨在简化开发人员在处理分页功能时的工作流程。下面将详细介绍这个控件的功能、实现方式以及如何在项目中使用它。 首先,此分页控件有两种分页模式:存储过程分页和...
一个用在客户端软件上的自定义分页控件源码,可以进行自行修改,适用与各种数据绑定控件。 1.按照此示例建立用户控件,生成后vs左面控件栏会生成控件标识 2.在使用页面把控件拖入所需地方,页面后端代码为控件赋值总...
"简单的分页控件源码"是一个实用的开发资源,提供了实现分页功能的代码示例。这个控件有两个主要功能:一是支持通过存储过程进行分页,二是支持使用控件内部的DataTable进行分页。这两种方法各有优缺点,存储过程...
这个".Net 分页控件(含源码)"资源提供了实现分页功能的一个实例,帮助开发者更好地理解和应用分页技术。 首先,让我们了解什么是分页。在网页或应用程序中,当数据量过大,一次性加载所有数据会消耗大量系统资源...
SUM分页控件(支持WinForm多线程)源码 源码描述: 一、源码特点 本软件是一个WinForm分页控件演示程序。其中分页控件简洁高效,支持多线程的跨线程安全访问,是开发数据展示软件的优秀分页控件。 二、功能介绍 1...
本文将深入探讨“WinForm自定义分页控件源码”这一主题,帮助开发者理解如何构建这样的控件,以及它在实际应用中的价值。 分页控件在数据展示中扮演着关键角色,尤其是在处理大量数据时。它允许用户以可管理的块...
在"Flex分页控件源码"中,我们可以深入理解分页组件的工作原理和实现方式。首先,分页控件通常包含以下几个关键元素: 1. 总记录数:这是决定分页数量的基础,它告诉系统有多少条数据需要展示。 2. 每页显示记录数...
理解这个分页控件的源码,开发者可以自定义控件的行为,优化性能,或者根据项目需求扩展其功能。同时,这个源码也可以作为学习数据库分页、数据绑定、用户界面设计和事件驱动编程的宝贵资源。通过深入研究,开发者...
本篇将深入探讨使用C# .NET实现分页控件的方法以及源码解析。 1. 分页控件的基本概念: 分页控件是一种UI元素,允许用户在多个页面间切换,以显示数据集的不同部分。在ASP.NET中,常见的分页控件有GridView、...
在这个特定的场景中,我们关注的是“VS2008 Web版的数据分页控件源码及其使用方法”。这个控件主要用于处理大量数据时,提高网页的加载速度和用户体验,通过分批次加载数据,避免一次性加载所有记录导致的页面性能...
这个ASP.NET分页控件源码的核心在于如何处理URL中的页码参数,以及如何动态地加载和显示数据。在控件内部,它需要实现以下关键功能: 1. **解析URL参数**:获取HTTP请求中的页码参数,这通常可以通过`Request....
总结来说,"C#分页控件源码"项目提供了一个实用的Windows Forms分页解决方案,可以帮助开发者深入理解C#控件编程、事件处理、数据绑定以及用户交互等方面的知识,同时也为开发自定义分页控件提供了起点。通过研究和...
在本资源中,"asp.net分页控件源码 含数据库完整演示代码"提供了一个完整的解决方案,包括分页控件的源代码和与数据库交互的示例,这对于学习和开发ASP.NET应用程序的人来说非常有价值。 首先,我们需要理解分页的...
本资源"通用分页控件及Demo源码"提供了一个纯服务器端的分页解决方案,尤其适用于ASP.NET Web应用程序开发。下面我们将详细探讨这个控件及其相关知识点。 1. **纯服务器端控件**: - 通常,分页功能的实现可以通过...
该"SQL分页控件源码20130206"提供了一个自定义的解决方案,可以应用于多种数据展示组件,如ASP.NET中的GridView、DataList、Repeater,以及Windows Forms中的DataGridView。这些控件通常用于显示从数据库中检索的...