首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

repeater嵌套,该如何处理

2012-02-07 
repeater嵌套repeater嵌套问题,下面代码块是绑定嵌套repeater,这个是所有数据都循环绑定出来了,我想要的是

repeater嵌套
repeater嵌套问题,下面代码块是绑定嵌套repeater,这个是所有数据都循环绑定出来了,
我想要的是special数据全部绑定,spec_sun接收一个special的id,显示出当前子数据;其他spec_sun不绑定

C# code
<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();            }        }    }



[解决办法]
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"]);
if(mainID == 特殊id)
{
DataTable _dt = DST(mainID);
if (_dt != null)
{
dt.DataSource = _dt;
dt.DataBind();
}
}
}

[解决办法]
参考:
嵌套
[解决办法]
顶 慕白兄 ,我就不参活了
[解决办法]
<td height="100%" valign="top" style="width: 183px">
<!--#############################开始#############################-->
<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";
}

}

热点排行