Repeater 2段ネスト
ネストされたフロントフォーマットコード:
バックグラウンドのchirldRepeaterへのバインドはparentRepeaterのOnItemDataBoundイベントを利用しています.
<asp:Repeater ID="parentRepeater" runat="server" OnItemCommand="parentRepeater_ItemCommand"
OnItemDataBound="parentRepeater_ItemDataBound">
<ItemTemplate>
<%#Eval("name") %>
<div id="news" class="commonfrm">
<asp:Repeater ID="chirldRepeater" runat="server">
<HeaderTemplate>
<table width="100%"; cellspacing="0">
<tr class="tr_header">
<th> </th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr class="tr_item">
<td class="td_header">
<a href='showArticle.aspx?newsid=<%# Eval("id")%>' target="_blank"><%#Eval("title") %> </a>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
</ItemTemplate>
</asp:Repeater>
バックグラウンドのchirldRepeaterへのバインドはparentRepeaterのOnItemDataBoundイベントを利用しています.
protected void parentRepeater_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
// chirldrepeater
Repeater chirldRepeater = (Repeater)e.Item.FindControl("chirldRepeater");
// parentRepeater id
DataRowView rowv = (DataRowView)e.Item.DataItem;
string CatagoryId = rowv["id"].ToString();
// chirldRepeater
chirldRepeater.DataSource = new NewsDAO().SeleteByCaid(CatagoryId);
chirldRepeater.DataBind();
}
}