Fork me on GitHub

CloneFrom 属性

获取或设置要克隆属性值及事件处理程序的另一个 AspNetPager 的ID。

C# 语法:

public string CloneFrom{get;set;}

默认值:

null

备注:

当一个页面上同时有两个或更多 AspNetPager 分页控件为相同的数据控件实现分页时,可以只设置一个 AspNetPager 的相关属性及事件处理程序,其它 AspNetPager 控件可以将 CloneFrom 属性指向该控件,自动克隆该控件的属性及事件处理程序而无需重复设置属性及编写事件处理程序, 在Url分页模式下,如果有两个或更多 AspNetPager 同时处理相同的数据或为相同的数据控件实现分页,则应该只设置一个 AspNetPager 的相关属性及编写事件处理程序,其它 AspNetPager 控件通过指定 CloseFrom 属性从该控件自动复制相关属性及事件处理程序,否则因为Url分页模式是在页面第一次加载时引发分页事件,所以如果有多个分页控件为相同的数据分页,每个 AspNetPager 的分页事件都被引发,从而导致数据被多次获取及绑定。

示例:

下面的示例使用两个AspNetPager为同一个Repeater进行分页,只需要设置第一个 AspNetPager 的相关属性及编写事件处理程序,第二个 AspNetPager 分页控件将 CloseFrom 属性设置为第一个 AspNetPager 的ID,从而实现自动复制第一个 AspNetPager 的相关属性及事件处理程序的目的:
      
<%@ 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">
  <webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%" HorizontalAlign="right" PageSize="8" OnPageChanged="AspNetPager1_PageChanged">
        </webdiyer:AspNetPager>
        <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="AspNetPager2" runat="server" CloneFrom="AspNetPager1">
        </webdiyer:AspNetPager>
		</form>
</BODY>
</HTML>