www.webdiyer.com
给DataList控件加分页? 
这个网站的AspNetPager怎么用的?
看来看去,没看明白

解决方案 »

  1.   

    http://www.webdiyer.com/
      

  2.   

    不同于DataGrid或GridView等带分页功能的数据绑定控件,AspNetPager分页控件本身并不显示任何数据,而只显示分页导航元素,数据在页面上的显示方式与该控件无关。AspNetPager分页控件可以为GridView、DataGrid、DataList、Repeater以及自定义的数据绑定控件进行分页。AspNetPager不仅仅是一个分页控件,它还可以实现如图片浏览等程序中的前一页后一页等导航功能。 
    AspNetPager控件的分页方法和GridView非常相似,但AspNetPager的分页功能更为灵活、强大。AspNetPager分页控件不仅仅支持默认的PostBack方式分页,它还支持通过Url来实现分页以及Url重写功能,这使得访问者可以直接输入相应的Url来访问任何页面,并且搜索引擎也可以直接检索每个页面,若使用DataGrid或GridView等.net框架自带的数据绑定控件的分页功能,这些是无法实现的。要使用 AspNetPager 分页控件,必须最少指定它的 RecordCount 属性的值,另外如果需要,指定并编写 PageChanging 或 PageChanged 事件的处理程序,可以在PageChanging事件处理程序中取消分页事件,在PageChanged事件处理程序中绑定数据或实现自定义的数据呈现逻辑。 RecordCount 属性指定要分页的所有数据的总项数,若未指定该值或该值小于等于 PageSize ,即要分页的数据只有一页,则AspNetPager控件默认会自动隐藏而不显示任何内容,若需在只有一页数据的情况下显示AspNetPager分页控件,可以将它的AlwaysShow属性设为true即可。 示例
    以下示例说明如何用AspNetPager对Repeater进行分页。         
    <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
    <%@Import NameSpace="System.Data"%>
    <%@Import NameSpace="System.Data.SqlClient"%>
    <script runat="server" Language="C#">
    void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                int totalOrders = (int)SqlHelper.ExecuteScalar(CommandType.StoredProcedure, "P_GetOrderNumber");
                AspNetPager1.RecordCount = totalOrders;
                bindData();
            }
        } void bindData()
        {
            Repeater1.DataSource = SqlHelper.ExecuteReader(CommandType.StoredProcedure,"P_GetPagedOrders2005",
                new SqlParameter("@startIndex", AspNetPager1.StartRecordIndex),
                new SqlParameter("@pageSize", AspNetPager1.PageSize));
            Repeater1.DataBind();
        } void AspNetPager1_PageChanged(object src, EventArgs e)
        {
            bindData();
        }
    </script>
    <HTML><HEAD>
    <TITLE> AspNetPager Samples </TITLE>
    <META NAME="Author" CONTENT="Webdiyer (www.webdiyer.com)">
    </HEAD><BODY>
    <form runat="server">
            <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
            <table width="100%" border="1" cellspacing="0" cellpadding="4" style="border-collapse:collapse">
            <tr style="backGround-color:#CCCCFF"><th style="width:15%"><asp:Literal ID="Literal1" runat="server" Text="<%$Resources:LocalizedText,orderid%>" /></th><th style="width:15%"><asp:Literal ID="Literal3" runat="server" Text="<%$Resources:LocalizedText,orderdate%>" /></th><th style="width:30%"><asp:Literal ID="Literal5" runat="server" Text="<%$Resources:LocalizedText,companyname%>" /></th><th style="width:20%"><asp:Literal ID="Literal2" runat="server" Text="<%$Resources:LocalizedText,customerid%>" /></th><th style="width:20%"><asp:Literal ID="Literal4" runat="server" Text="<%$Resources:LocalizedText,employeename%>" /></th></tr>
            </HeaderTemplate>
            <ItemTemplate>
            <tr style="background-color:#FAF3DC">
            <td><%#DataBinder.Eval(Container.DataItem,"orderid")%></td>
            <td><%#DataBinder.Eval(Container.DataItem,"orderdate","{0:d}")%></td>
            <td><%#DataBinder.Eval(Container.DataItem, "companyname")%></td>
            <td><%#DataBinder.Eval(Container.DataItem,"customerid")%></td>
            <td><%#DataBinder.Eval(Container.DataItem,"employeename")%></td>
            </tr>
            </ItemTemplate>
            <FooterTemplate>
            </table>
            </FooterTemplate>
            </asp:Repeater>
      <webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%" HorizontalAlign="right" PageSize="8" OnPageChanged="AspNetPager1_PageChanged">
            </webdiyer:AspNetPager>
            </form>
    </BODY>
    </HTML>
     
          
    该示例所用的Sql Server存储过程代码如下(仅适用于SQL Server 2005):CREATE PROCEDURE P_GetPagedOrders2005
        @startIndex INT, 
        @pageSize INT 
    AS
    begin
    WITH orderList AS ( 
    SELECT ROW_NUMBER() OVER (ORDER BY O.orderid DESC)AS Row, O.orderid,O.orderdate,O.customerid,C.CompanyName,E.FirstName+' '+E.LastName as EmployeeName 
    from orders O
    left outer join Customers C
    on O.CustomerID=C.CustomerID
    left outer join Employees E
    on O.EmployeeID=E.EmployeeID)SELECT orderid,orderdate,customerid,companyName,employeeName
    FROM orderlist
    WHERE Row between @startIndex and @startIndex+@pageSize-1
    end
      

  3.   

    http://www.webdiyer.com/AspNetPagerDemo/basic/default.aspx
      

  4.   

    <webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%" HorizontalAlign="right" PageSize="8" OnPageChanged="AspNetPager1_PageChanged"></webdiyer:AspNetPager> 
    点来点去,都点不出来<webdiyer>标签?引用dll文件后,下一步,怎么做的?
      

  5.   

    你直接在工具栏右键点击选择——选项卡——添加DLL就是了啊
    然后工具栏中肯定多了一个控件 直接拖过去就是了啊
      

  6.   

    这句<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>