发布一个扩展Repeater的模板控件,带自动分页功能

实现功能:

     1.扩展了三个模板,分别为:OperateDataTemplate、PageDataTemplate和EmptyTemplate;

     2.默认模板加载顺序为:

       HeaderTemplate

       ItemTemplate或AlternatingItem

       OperateDataTemplate   //操作项模板,用来设置批量操作等内容;

       PageDataTemplate    //通过Layout.table或Layout.div可以控制此模板是在加载完FooterTemplate后加载还是加载完OperateDataTemplate加载,默认为加载完OperateDataTemplate加载

       EmptyTemplate   //空模板,用于空数据时自动显示此模板内容;

      3.各模板说明

      OperateDataTemplate

      说明:一般用于后台管理时设置的批量操作等内容,可设置服务器控件,cs文件中使用控件ID.FindControl查找该控件;

      示例代码:

     aspx文件:

<OperateDataTemplate>
<tr>
<td class="foottr" align="center"><input id="Checkbox1" type="checkbox" name="chkall" onclick="CheckAll(form1)" /></td>
<td colspan="2" class="foottr"><asp:DropDownList ID="BatchOperation" runat="server">
<asp:ListItem Text="请选择" Value=""></asp:ListItem>
<asp:ListItem Text="批量删除" Value="Del"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="AgentsID" runat="server" style="display:none;">
</asp:DropDownList>
<asp:Button ID="Button2" runat="server" Text="执行操作" CssClass="btn" OnClick="Button2_Click" />
</td>
</tr>
</OperateDataTemplate>

     PageDataTemplate

     说明:

     如需使用控件自带的分页功能,需在cs文件中引入using HengCms.WebControl;,然后将PageDataTemplate赋值一个控件中的模板类,此类为实现了Itemplate接口的类。

    MyTemplate pagetemp = new MyTemplate();

    repeaterpage.PageDataTemplate = pagetemp;

    关于MyTemplate 的属性说明:

    Colspan     类型int      说明:设置如果为table布局时,包含分页代码所在行的跨列数

    PageSize    类型int      说明:设置每页数量

    PageLayout    类型:枚举    值:table,div     说明:分页显示时的代码布局,如果设置为div,则分页代码不包含任何的tr\td代码

    CurrentPageIndex    类型int   说明:获取当前页数

    RecordCount    类型int    说明:设置总记录数

    以下属性在查询传递多个自定义参数时用到:

    UrlParmString    类型:string     示例:pagetemp.UrlParmString = "keywords=ss&id=1";

    UrlParm   类型:Dictionary<string, string>     说明:如果传递参数较多时,可使用此属性将参数组成Dictionary进行传递;

    示例:  

        System.Collections.Generic.Dictionary<string, string> urlparm = new System.Collections.Generic.Dictionary<string, string>();
urlparm.Add(
"keywords", "ss");
urlparm.Add(
"id", "1");
pagetemp.UrlParm
= urlparm;

    备注:

    (1)程序自动获取当前页的url,如没有自定义参数,上述两个属性均不用设置; 

    (2)如需遍历控件的每一个itemtemplate,使用下列代码:  

foreach (RepeaterItem ri in test.ItemsList)
{
.......
//具体执行代码
}

   上一张效果图:

  

下载地址:Control.rar

原文地址:https://www.cnblogs.com/superfeeling/p/2136330.html