repeater嵌套问题,下面代码块是绑定嵌套repeater,这个是所有数据都循环绑定出来了,
我想要的是special数据全部绑定,spec_sun接收一个special的id,显示出当前子数据;其他spec_sun不绑定<asp:Repeater ID="special" runat="server" OnItemDataBound="special_ItemDataBound">
<ItemTemplate>
<div class="newsbt text bold"><a href="sal.aspx?typeid=<%#Eval("id") %>"><%#Eval("typename") %></a></div>
<asp:Repeater ID="spec_sun" runat="server">
<ItemTemplate>
<div class="newsli text"><a href="salists.aspx?typeid=<%#Eval("id") %>"><%#Eval("typename") %></a></div>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
protected void special_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater dt = (Repeater)e.Item.FindControl("spec_sun");
DataRowView rowv = (DataRowView)e.Item.DataItem;
int mainID = Convert.ToInt32(rowv["id"]); DataTable _dt = DST(mainID);
if (_dt != null)
{
dt.DataSource = _dt;
dt.DataBind();
}
}
}
我想要的是special数据全部绑定,spec_sun接收一个special的id,显示出当前子数据;其他spec_sun不绑定<asp:Repeater ID="special" runat="server" OnItemDataBound="special_ItemDataBound">
<ItemTemplate>
<div class="newsbt text bold"><a href="sal.aspx?typeid=<%#Eval("id") %>"><%#Eval("typename") %></a></div>
<asp:Repeater ID="spec_sun" runat="server">
<ItemTemplate>
<div class="newsli text"><a href="salists.aspx?typeid=<%#Eval("id") %>"><%#Eval("typename") %></a></div>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
protected void special_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater dt = (Repeater)e.Item.FindControl("spec_sun");
DataRowView rowv = (DataRowView)e.Item.DataItem;
int mainID = Convert.ToInt32(rowv["id"]); DataTable _dt = DST(mainID);
if (_dt != null)
{
dt.DataSource = _dt;
dt.DataBind();
}
}
}
{
Repeater dt = (Repeater)e.Item.FindControl("spec_sun");
DataRowView rowv = (DataRowView)e.Item.DataItem;
int mainID = Convert.ToInt32(rowv["id"]);
if(mainID == 特殊id)
{
DataTable _dt = DST(mainID);
if (_dt != null)
{
dt.DataSource = _dt;
dt.DataBind();
}
}
}
<!--#############################开始#############################-->
<asp:repeater id="rptModLevel1" runat="server">
<itemtemplate>
<table width="178" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="178" align="left" background="images/meun_bg.gif" height="22" style="text-indent:32px;"><a href='main.aspx' target="mainFrame" onClick="showObj( <%# GetNextNum()%> )" title='<%# DataBinder.Eval(Container.DataItem, "series_name")%>'><font color="#023284"><%# SubString(DataBinder.Eval(Container.DataItem, "series_name").ToString(),9)%></font></a></td>
</tr>
</table>
<table width="178" height="4" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td></td>
</tr>
</table>
<div id="odiv" style="DISPLAY:none">
<table width="143" height="24" border="0" align="center" cellpadding="0" cellspacing="0">
<asp:repeater id="rptModLevel2" runat="server" DataSource='<%# ((DataRowView)Container.DataItem).CreateChildView("Level1Level2Ralation") %>'>
<itemtemplate>
<tr>
<td height="22" valign="bottom" align="left" background="images/s_bg.gif" onmouseover="this.background='images/s_bg02.gif'" onmouseout="this.background='images/s_bg.gif'" style="font-size:12px; text-indent:20px;"><a href='main.aspx' onclick="OpenFullSizeWindow('main_desk.aspx?SeriesId=<%# DataBinder.Eval(Container.DataItem, "series_id")%>&handbookid=<%# DataBinder.Eval(Container.DataItem, "handbook_id")%>','');return false" target="mainFrame" title='<%# DataBinder.Eval(Container.DataItem, "handbook_name")%>'><%# SubString(DataBinder.Eval(Container.DataItem, "handbook_name").ToString(), 9)%></a></td>
</tr>
<tr>
<td height="1" ></td>
</tr>
</itemtemplate>
</asp:repeater>
</table>
<table width="100" height="6" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td></td>
</tr>
</table>
</div>
</itemtemplate>
</asp:repeater>
<!--#############################结束#############################-->
<div id="odiv" style="DISPLAY:none"></div>
</td>function showObj(num) {
if (odiv[num].style.display=="none") {
hideAll();
odiv[num].style.display="inline";
}
else {
odiv[num].style.display="none";
}}