repeater内部的repeater在后台不能调用,在外层的repeater的有一个ItemDataBound事件,在这个事件中写代码 页面部分:
<asp:Repeater ID="Repeater1" runat="server" onitemdatabound="Repeater1_ItemDataBound">
<HeaderTemplate>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="black">
</HeaderTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
<ItemTemplate>
<tr style=" background-color:White;">
<td width="15%"><%# Eval("Name")%></td>
<td width="85%">
<asp:Repeater ID="Repeater2" runat="server">
<HeaderTemplate>
<table width="100%" border="0" cellpadding="3" cellspacing="0">
</HeaderTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
<ItemTemplate>
<tr style=" background-color:Yellow">
<td width="20%"><%# Eval("StartDate", "{0:yyyy.MM.dd}")%></td>
<td width="20%"><%# Eval("EndDate", "{0:yyyy.MM.dd}")%></td>
<td width="40%"><%# Eval("Firm") %></td>
<td width="20%"><%# Eval("Depart")%></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
代码部分:
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{ //每一行都要执行此方法
//行对象(e.Item)包括两部分:外观(e.Item.FindControl()),数据(e.Item.DataItem)
//ItemDataBound干三件事:取数据,找控件,改效果
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Info data = (Info)e.Item.DataItem;
Repeater repeaterWork = (Repeater)e.Item.FindControl("Repeater2");
repeaterWork.DataSource = data.Work;
repeaterWork.DataBind();
}
}
---------------------解释 e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem ----------------- 1.(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem) ----指触发对象的类型是DadaList里的基本行或是替换行(简单的说是DataList里的所有数据项内容)
2.e.Item.ItemType == ListItemType.Header -----指触发对象的类型是DadaList里的标题行的内容 进行判断以后,可以 对相应的数据对象进行操作ListItemType 枚举 [C#]请参见 System.Web.UI.WebControls 命名空间 | DataGridItem.ItemType | DataListItem.ItemType | RepeaterItem.ItemType 要求 命名空间: System.Web.UI.WebControls
全部显示
指定列表控件中项的类型 备注 ListItemType 枚举表示可以包含在列表控件中的不同项,例如 DataGridDataList 和 Repeater典型的列表控件由包含此枚举所表示的元素的单元格组成
成员 成员名称 说明 AlternatingItem 交替(从零开始的偶数索引)单元格中的项它是数据绑定的 EditItem 列表控件中当前处于编辑模式的项它是数据绑定的 Footer 列表控件的页脚它不是数据绑定的 Header 列表控件的页眉它不是数据绑定的 Item 列表控件中的项它是数据绑定的 Pager 页导航,显示定位到与 DataGrid 控件关联的不同页的控件它不是数据绑定的 SelectedItem 列表控件中的选定项它是数据绑定的 Separator 列表控件中项之间的分隔符它不是数据绑定的(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem) 是判断项是控件内容中的项或交插项 e.Item.ItemType == ListItemType.Header 是判断项是不是控件的表头
浙公网安备 33010602011771号