asp.net 控件列表怎么处理一对多情况?

有这样的情况:一个新闻列表(在ASP中就是一个循环)在asp.net中用控件(自动循环)但假如一次循环中又嵌套了一个子循环列表asp中原理简单:套一个子循环动态open一... 有这样的情况:一个新闻列表(在ASP中就是一个循环)在asp.net中用控件(自动循环) 但假如一次循环中又嵌套了一个子循环列表 asp中原理简单 :套一个子循环 动态open一个rs 但asp.net中怎么做啊? 展开
 我来答
匿名用户
2013-11-07
展开全部
1、我们先在页面中布置好两个DataList。并分别起名,dlsProductMenu,dlsProductInfo。如下:<TABLE id="Table3" cellSpacing="0" cellPadding="0" width="90%" align="center" border="0">
<TBODY>
<TR>
<TD vAlign="top">
<!--主菜单开始--><asp:datalist id="dlsProductMenu" runat="server" RepeatDirection="Horizontal" RepeatColumns="2"
Width="100%">
<ItemTemplate>
<TABLE class="table02" id="Table13" cellSpacing="0" cellPadding="0" width="100%" align="center"
border="0">
<TR bgColor="#f5f5f5">
<TD width="50%" height="30">
<%# DataBinder.Eval(Container.DataItem,"Name") %>
</TD>
</TR>
</TABLE>
<!--子菜单开始-->
<asp:datalist id="dlsProductInfo" Width="100%" runat="server" RepeatColumns="1">
<ItemTemplate>
<TABLE class="table02" id="Table14" cellSpacing="0" cellPadding="0" width="100%" align="center"
border="0">
<TR bgColor="#f5f5f5">
<TD width="50%" height="30">
<DIV class="style10" align="left">标题: <a href='ProductInfoDetail.aspx?subID=<%# DataBinder.Eval(Container.DataItem,"subID") %>'>
<%# DataBinder.Eval(Container.DataItem,"Title") %>
</a>
</DIV>
</TD>
</TR>
</TABLE>
</ItemTemplate>
</asp:datalist>
<!--子菜单结束-->
</ItemTemplate>
</asp:datalist>
<!--主菜单结束--></TD>
</TR>
</TBODY>
</TABLE>2、进行数据绑定。(1)为主DataList绑定主数据。
DataSet ds = SqlDataProvider.GetMainInfo();//获取将要绑定的数据。
this.dlsProductMenu.DataSource = ds;
this.dlsProductMenu.DataBind();
(2)为子DataList绑定从数据。这也是该文的重点。
DataList 嵌套的重点是要在外层DataList的ItemDataBound事件中完成对嵌套DataList的绑定。在主DataList的 ItemDataBound事件中用e.Item.FindControl方法来找到嵌套层DataList的id,完后为该id绑定数据。比如:private void dlsProductMenu_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item||e.Item.ItemType == ListItemType.AlternatingItem)
{
DataList dataList = (DataList)e.Item.FindControl("dlsProductInfo");
DataRowView rowv = (DataRowView)e.Item.DataItem;
int mainID = Convert.ToInt32(rowv["Id"]);

if(mainID > 0)
{
DataSet ds = SqlDataProvider.GetSubContent(mainID);//获取从数据。
if(ds != null)
{
try
{
dataList.DataSource = ds;
dataList.DataBind();
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
}
}
}
}
匿名用户
2013-11-07
展开全部
就是datalist嵌套datalist咯 你在Google上搜一下就明白了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-07
展开全部
不知道您要实现什么效果~能说的具体些吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式