实现功能:
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