我是如何使用AspNetPager7.2的!

1.首先下载AspNetPager7.2,项目中引用AspNetPager.dll

2. 在数据库中创建存储过程UP_GetRecordByPage

   ------------------------------------
--用途:分页存储过程(对有主键的表效率极高)
--说明:
------------------------------------

CREATE  PROCEDURE [dbo].[UP_GetRecordByPage]
    @tblName      varchar(255),       -- 表名
    @fldName      varchar(255),       -- 主键字段名
    @PageSize     int = 10,           -- 页尺寸
    @PageIndex    int = 1,            -- 页码
    @IsReCount    bit = 0,            -- 返回记录总数, 非 0 值则返回
    @OrderType    bit = 0,            -- 设置排序类型, 非 0 值则降序
    @strWhere     varchar(1000) = '' -- 查询条件 (注意: 不要加 where)
AS

declare @strSQL   varchar(6000)       -- 主语句
declare @strTmp   varchar(1000)        -- 临时变量(查询条件过长时可能会出错,可修改100为1000)
declare @strOrder varchar(400)        -- 排序类型

if @OrderType != 0
begin
    set @strTmp = '<(select min'
    set @strOrder = ' order by [' + @fldName +'] desc'
end
else
begin
    set @strTmp = '>(select max'
    set @strOrder = ' order by [' + @fldName +'] asc'
end

set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
    + @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
    + @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
    + @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
    + @strOrder

if @strWhere != ''
    set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
        + @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
        + @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
        + @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
        + @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder

if @PageIndex = 1
begin
    set @strTmp =''
    if @strWhere != ''
        set @strTmp = ' where ' + @strWhere

    set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
        + @tblName + ']' + @strTmp + ' ' + @strOrder
end

if @IsReCount != 0
    set @strSQL = 'select count(*) as Total from [' + @tblName + ']'+' where ' + @strWhere

exec (@strSQL)


GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

 

 

3.在DAL的OverView.cs中有:

 


4. 在BLL的OverView.cs中有

5.在aspx中有:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Admin_NoteBook.aspx.cs" Inherits="Admin_Admin_NoteBook" %>

<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
<!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>
    <link href="../Css/Style.css" rel="stylesheet" type="text/css" />

    <script language="javascript" type="text/javascript">
        //全选全不选
        function SelectAll(obj)
        {
            var aspnetForm=document.getElementById("aspnetForm");
            if (aspnetForm.SelectID != null)
            {
                if (aspnetForm.SelectID.length == null)
                {
                    aspnetForm.SelectID.checked=obj.checked;
                }
                else
                {
                    for (i=0;i<aspnetForm.SelectID.length;i++)
                    {
                        if(aspnetForm.SelectID[i].checked!=obj.checked)
                        {
                            aspnetForm.SelectID[i].checked=obj.checked;
                        }
                    }
                }
            }
        }
        //检查操作
        function CheckSelect()
        {
            var aspnetForm=document.getElementById("aspnetForm");
            var checked=false;
            if (aspnetForm.SelectID != null)
            {
                if (aspnetForm.SelectID.length == null)
                {
                    if (aspnetForm.SelectID.checked == true)
                    {
                        checked=true;
                    }
                }
                else
                {
                    for (i=0;i<aspnetForm.SelectID.length;i++)
                    {
                        if(aspnetForm.SelectID[i].checked == true)
                        {
                            checked=true;
                        }
                    }
                }
            }
            if (checked == false)
            {
                alert("请选择要操作的记录");
                return false;
            }
            else
            {
                if (!confirm("注意:请问确定要操作吗"))
                {
                    return false;
                }
            }
            return true;
        }
    </script>

</head>
<body>
    <form id="aspnetForm" runat="server">
        <div>
            <div class="BodyBlock PTB5">
                <div class="Block Hidden">
                    <div class="Title H22 LH22 TC">
                        企业记事管理
                    </div>
                    <ul class="Header TC">
                        <li class="Left" style="width: 50px">ID</li>
                        <li class="Right" style="width: 30px">选择</li>
                        <li class="Right" style="width: 120px">添加时间</li>
                        <li class="TC">内容</li>
                    </ul>
                    <asp:Repeater ID="NoteList" runat="server">
                        <ItemTemplate>
                            <dl class="Middle TC">
                                <dd class="Left" style="width: 50px">
                                    <%#Eval("ViewID") %>
                                </dd>
                                <dd class="Right" style="width: 30px">
                                    <input type="checkbox" name="SelectID" value="<%#Eval("ViewID") %>" /></dd>
                                <dd class="Right" style="width: 120px">
                                    <%#String.Format("{0:yyyy-MM-dd HH:mm:ss}", Convert.ToDateTime(Eval("ViewAddTime"))) %>
                                </dd>
                                <dd class="TL">
                                    <a href='Admin_NoteBookAdd.aspx?ID=<%#Eval("ViewID") %>'>
                                        <%#Eval("ViewContent") %>
                                    </a>
                                </dd>
                            </dl>
                        </ItemTemplate>
                    </asp:Repeater>
                    <div class="Footer PTB5 TC">
                        <input type="button" class="Button" value="添加记事" οnclick="window.location.href='Admin_NoteBookAdd.aspx'" />&nbsp;<asp:Button
                            CssClass="Button" ID="DeleteButton" Text="确定删除" OnClientClick="return CheckSelect()"
                            runat="server" OnClick="DeleteButton_Click" />&nbsp;<input type="checkbox" name="All"
                                οnclick="SelectAll(this)" />全选/全不选
                    </div>
                </div>
                <div class="Block Hidden">
                    <div class="Pager" >
                        <div class="Pager_Info" >
                            <webdiyer:AspNetPager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged"
                                CenterCurrentPageButton="True" CustomInfoHTML="第%CurrentPageIndex%页,共%PageCount%页,每页%PageSize%条"
                                FirstPageText="首页" LastPageText="尾页" LayoutType="Table" NextPageText="下一页" PageIndexBoxType="DropDownList"
                                PrevPageText="上一页" ShowCustomInfoSection="Right" SubmitButtonText="Go" TextAfterPageIndexBox="页"
                                TextBeforePageIndexBox="转到" CustomInfoTextAlign="Right" ShowPageIndexBox="Always" CustomInfoSectionWidth="15%">
                            </webdiyer:AspNetPager>
                        </div>
                    </div>
                </div>
            </div>
            <br />
            <br />
        </div>
    </form>
</body>
</html>

5.在NoteBook.cs中有:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Admin_Admin_NoteBook : System.Web.UI.Page
{
    YHZB.BLL.tbl_OverView OverBLL = new YHZB.BLL.tbl_OverView();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            
            AspNetPager1.RecordCount = OverBLL.GetList(" ViewCate='" + cate + "'").Tables[0].Rows.Count;
            BindData();

        }
    }

    private void BindData()
    {

        NoteList.DataSource = OverBLL.GetList(AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex , " ViewCate='" + cate + "'").Tables[0];
        NoteList.DataBind();
    }

    protected void DeleteButton_Click(object sender, EventArgs e)
    {
        string noteid = string.Empty;
        noteid = YHZB.Model.Requests.GetIntsForm("SelectID");
        if (noteid != "0")
        {
            foreach (string str in noteid.Split(new char[] { ',' }))
            {
                OverBLL.Delete(Convert.ToInt32(str));
            }
            BindData();
        }

    }

    protected void AspNetPager1_PageChanged(object sender, EventArgs e)
    {
        BindData();
    }
}

到此分页完成!

AspNetPager7.2分页控件及Demo源码 分页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以分页的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其分页功能并不尽如人意,如可定制性差、无法通过Url实现分页功能等,而且有时候我们需要对DataList和Repeater甚至自定义数据绑定控件进行分页,手工编写分页代码不但技术难度大、任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一。 AspNetPager针对ASP.NET分页控件的不足,提出了与众不同的解决asp.net中分页问题的方案,即将分页导航功能与数据显示功能完全独立开来,由用户自己控制数据的获取及显示方式,因此可以被灵活地应用于任何需要实现分页导航功能的地方,如为GridView、DataList以及Repeater等数据绑定控件实现分页、呈现自定义的分页数据以及制作图片浏览程序等,因为AspNetPager控件和数据是独立的,因此要分页的数据可以来自任何数据源,如SQL Server、Oracle、Access、mysql、DB2等数据库以及XML文件、内存数据或缓存中的数据、文件系统等等。 AspNetPager 7.2 版发布 新增属性 PagingButtonLayoutType,可设置分页导航元素(数字页索引、上页、下页、首页和尾页)的布局方式,该属性值是一个PagingButtonLayoutType枚举,通过设置该属性为PagingButtonLayoutType.UnorderedList或PagingButtonLayoutType.Span,允许将这些分页导航元素包含在 与或与标签之间,以便于为这些分页元素应用CSS样式。 新增 PagingButtonClass 与 PagingButtonStyle 属性,可以单独为分页导航按钮(数字页索引、上页、下页、首页和尾页)设置CSS样式; 新增 FirstLastButtonClass 与 FirstLastButtonStyle 属性,可以单独为首页和尾页分页导航按钮设置CSS样式,如果该属性未设置,但指定了PagingButtonClass 与 PagingButtonStyle 属性的值,则首页和尾页按钮样式将使用 PagingButtonClass 与 PagingButtonStyle 属性中指定的样式; 新增 NextPrevButtonClass 与 NextPrevButtonStyle 属性,可以单独为上页和下页分页导航按钮设置CSS样式,如果该属性未设置,但指定了PagingButtonClass 与 PagingButtonStyle 属性的值,则上页和下页按钮样式将使用 PagingButtonClass 与 PagingButtonStyle 属性中指定的样式; 新增 MoreButtonClass 与 MoreButtonStyle 属性,可以单独为更多页(...)分页导航按钮设置CSS样式,如果该属性未设置,但指定了PagingButtonClass 与 PagingButtonStyle 属性的值,则上页和下页按钮样式将使用 PagingButtonClass 与 PagingButtonStyle 属性中指定的样式; 新增属性 ShowMoreButtons ,可以指定是否显示更多页按钮; 新增属性 CurrentPageButtonPosition ,可设置在每次分页后,当前页数字索引在所有的数字页索引中的显示位置,该属性值是一个PagingButtonPosition枚举,对应的值及说明如下: Beginning:当前页数字索引总是显示在所有数字页索引的最前面; End:当前页数字索引总是显示在所有数字页索引的最后面; Center:当前页数字索引总是显示在所有数字页索引的中间; Fixed:默认值,固定不变; 控件的CssClass属性仅应用于控件的窗口元素(div),将不再应用于下属分页元素; 废止属性CenterCurrentPageButton,可以用CurrentPageButtonPosition属性取代; 修改CurrentPageIndexn属性,允许在程序中任何地方以编程方式设置CurrentPageIndex的值来动态指定当前页,直接设置该属性的值时将同时引发PageChanging和PageChanged 事件,实现和点击分页按钮一样的分页功能; 修正了7.1版中设置SubmitButtonImageUrl属性后,Postback回发分页方式情况下点击数字页索引按钮不引发分页事件的bug; 修正了使用Url分页时,如果页面上没有服务器端form控件时无法注册客户端脚本的bug,从7.2版起如果使用Url分页并且ShowPageIndexBox属性没有设置为Never时, AspNetPager控件必须放在 与 标记之间,若使用Url分页并且ShowPageIndexBox为Never时,页面上可以不使用服务器端form控件。 AspNetPager的主要功能: 1、支持通过Url进行分页: AspNetPager除提供默认的类似于DataGrid和GridView的PostBack分页方式外,还支持通过Url进行分页,象大多数asp程序中分页一样, Url分页方式允许用户通过在浏览器地址栏中输入相应的地址即可直接进入指定页面,也可以使搜索引擎搜索到所有分页的页面的内容,因此具有用户友好和搜索引擎友好的优点,关于Url分页与PostBack分页方式的差异,请参考Url与PostBack分页方式的对比。 2、支持Url分页方式下的Url重写(UrlRewrite)功能 Url重写技术可以使显示给用户的Url不同于实际的Url,Url重写技术被广泛应用于搜索引擎优化(SEO)、网站重组后重定向页面路径以及提供用户友好的Url等方面, AspNetPager支持Url重写技术使您可以自定义分页导航的Url格式,实现Url重写; 3、支持使用用户自定义图片做为导航元素: 您可以使用自定义的图片文件做为分页控件的导航元素,而不仅仅限于显示文字内容。 4、功能强大灵活、使用方便、可定制性强: AspNetPager分页控件的所有导航元素都可以由用户进行单独控制,从6.0版起,AspNetPager支持使用主题(Theme)与皮肤(Skin)统一控件的整体样式,配合asp.net 2.0中的DataSource控件,AspNetPager只需要编写短短几行代码,甚至无需编写任何代码,只需设置几个属性就可以实现分页功能。 5、增强的 Visual Studio 2005/2008设计时支持 增强的设计时支持使控件在设计时更加直观,易于使用,开发快捷方便。 6、兼容IE6.0+及FireFox 1.5+等浏览器 7、丰富而完整的控件文档和示例项目: 控件附带的完整的帮助文档及示例项目能够帮助您快速上手,熟悉AspNetPager控件的使用,您还可以通过给作者留言以及论坛提问等方式解决控件使用中遇到的问题。 AspNetPager72Src下为AspNetPager组件源码 作者:webdiyer
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值