您的位置:首页 > 编程学习 > ASP.NET

asp.net自定义分页控件

更多 2014/11/15 来源:ASP.NET学习浏览量:1232
学习标签: 分页
本文导读:页面中数据的分页功能常常是令程序员比较头疼的一件事情,并非是技术原因,而是分页的繁琐。虽然DataGrid也有自带的分页功能 ,但是当数据量很大的时候,所需的资源开销,将大大增加,下面介绍一种自定义分页功能来减少资源使用和提高效率。

一、新建一个项目PagerControl

 

 
C# 代码   复制

using System;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.IO;
using System.Text;
using System.Web.UI;
using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;
using System.Web;
using System.Resources;
using System.Globalization;
using System.Security.Permissions;
using System.Text.RegularExpressions;

namespace PagerControl
{
    AspNetPager Server Control

    PageChangingEventHandler Delegate

    PageChangingEventArgs Class

    ShowInputBox,ShowCustomInfoSection and PagingButtonType Enumerations

    AspNetPager Control Designer

    Custom Attributes
}

 

二、生成该项目文件,得到PagerControl.dll文件

 

三、将生成的dll引用到要分页控件的项目中去

 

1、aspx页面中添加控件

<%@ Register Assembly="PagerControl" Namespace="PagerControl" TagPrefix="custom" %>

 

在需要加控件的地方加入控件代码

 

 
C# 代码   复制

 <custom:AspNetPager ID="Pager" runat="server" CssClass="Pager" CustomInfoClass=""
                CustomInfoHTML="<span class='P_Total'><font class='P_Record' title='总记录数'>%RecordCount%</font><font class='P_Page' title='页数'>%currentpageindex%/%PageCount%</font></span>"
                CustomInfoTextAlign="Right" FirstPageText="|<" LastPageText=">|" NextPageText=">"
                OnPageChanged="Pager_PageChanged" PagingButtonSpacing="3px" PrevPageText="<"
                ShowCustomInfoSection="Left" UrlRewritePattern="" PageSize="18">
            </custom:AspNetPager>

 

 

2、在CS文件中数据绑定时类似代码

 

 
C# 代码   复制

        protected void FillGrid()
        {
           
            Pager.RecordCount = 获取记录总数,赋值给pager;

            gvList.DataSource = GetList(strWhere, Pager.PageSize, Pager.CurrentPageIndex);
            gvList.DataBind();
        }

 

添加PagerControl控件的Pager_PageChanged事件

 

 
C# 代码   复制

        protected void Pager_PageChanged(object sender, EventArgs e)
        {
            FillGrid();
        }

 

在列表页查询时,页面代码如下

 

 
C# 代码   复制

        protected void btnQuery_Click(object sender, EventArgs e)
        {
            Pager.CurrentPageIndex = 1;
            FillGrid();
        }

 

收藏
499
很赞
21