Repeater里面嵌套一个Repeater 请高手明示~! 很急很急~!~!

<asp:RepeaterID="classid1"runat="server"><ItemTemplate><aid='cid<%#Eval("id")%>'href=... <asp:Repeater ID="classid1" runat="server">
<ItemTemplate>
<a id='cid<%#Eval("id")%>' href="javascript:void(null)" onclick='GmarketShowPdetails(this,<%#Container.ItmeIndex %>)' class="a12-blue-b"><%#Eval("Category") %></a>
<div id='cid<%#Eval("id") %>d' runat="server" style="display:none;" >
<asp:Repeater ID="diannao" runat="server">
<ItemTemplate>
<li>
<a href='<%=ChangePath()%>GmarketList<%#Eval("cid") %>_<%#Eval("id") %>_0_<%=Cou_flag%>_0_0_1_.html' ><%#Eval("category1")%></a>
</li>
</ItemTemplate>
</asp:Repeater>
</div>
</ItemTemplate>
</asp:Repeater>
在这个里面我嵌套了一个Repeater 下面的Repeater是需要获得参数的,就是上一级的Repeater里面的一级分类ID 请问我如何将这个分类ID穿给第二个分类呢?
展开
 我来答
QQ2k5
2012-03-28 · TA获得超过438个赞
知道小有建树答主
回答量:911
采纳率:25%
帮助的人:257万
展开全部
下面是我之前写的一个datalist嵌套datalist的例子,与repeater一样,你参考一下

最近老是有人问这个问题,其实这个问题细细想来其实就是把一个DataList(childTabaList)写在一个dataList(parentDataList)的<ItemTemplate></ItemTemplate>中,然后再对datalist进行绑定,下面就是如何实现的代码:
前台:
<asp:DataList runat="server" Id="ParentDataList" GridLines="Both" cellpadding="3"
RepeatColumns="1" Width="407px">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<%# DataBinder.Eval(Container,"DataItem.OnDutyPeople") %>
<br>
<asp:DataList runat="server" Id="ChildDataList" GridLines="None" datasource='<%# DataBinder.Eval(Container, "DataItem.myrelation")%>'>
<HeaderTemplate>
<table width="100%">
<tr>
<td ><b>会议名称</b></td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr style ="height:25px;" >
<td ><asp:Label ID="lbName" Ruant="serve" Text=' <%# DataBinder.Eval (Container,"DataItem.MeetingName")%>'></asp:Label></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:DataList>
</ItemTemplate>
</asp:DataList>
c# 代码:
DataTable mytable = new DataTable("parentTable");mytable.Columns .Add(new DataColumn("OnDutyPeople"));
这是用于绑定parentDataList的数据;
DataTable childTable = new DataTable("childTable");
childTable.Columns.Add(new DataColumn("OnDutyPeople"));
childTable.Columns.Add(new DataColumn("MeetingName"));
这是用于绑定childDataList的数据;(以上的datatable的数据载入,很简单我就不写了,)
下面就是如何把这两个datatable联系起来,这是关键;
DataSet ds = new DataSet();
ds.Tables.Add(mytable);
ds.Tables.Add(childTable);
ds.Relations.Add("myrelation", ds.Tables["parentTable"].Columns["OnDutyPeople"], ds.Tables["childTable"].Columns["OnDutyPeople"]);
这里利用DataSet的Relations的add方法,把两个table关联起来,第一个参数是这个关联的名称,第二个参数是外层datalist的与内层datalist相关联的主键,第三个参数是内层datalist与外层datalist相关联的外键。
ParentDataList.DataSource = ds.Tables["parentTable"].DefaultView;
ParentDataList.DataBind();
这样就把数据绑定上去了;下面就是如何获取DataList的数据了,相信对于经常操作DataList的大虾们,是小菜一碟,
for(int i=0;i<parentDataList.Items.Count;i++)
{
DataList dt= (DataList)parentDataList.Item[i].FindControl("childDataList");
for(int j=0;j<dt.Item.Count;j++)
{
string str=((Label)dt.Item[j].FindControl("lbName")).Text;//这是childDataList的值;
}
}

原文:http://hi.baidu.com/nba2k7/blog/item/ce9ced2a45dbc125d42af194.html
启帆信息
2024-11-19 广告
启帆信息是英伟达中国区代理商,原厂授权代理,提供全面的软件技术解决方案以及NVIDIA以太网产品、交换机等产品,欢迎前来咨询!... 点击进入详情页
本回答由启帆信息提供
wjxheng
2012-03-27
知道答主
回答量:10
采纳率:0%
帮助的人:5.6万
展开全部
这个方法是Repeater的项绑定事件,在他里面你可以获取到你想要的控件对象及控件对应的值

protected void Rcat_ItemDataBound(object sender, RepeaterItemEventArgs e)
{

if (e.Item.ItemType == ListItemType.Item)
{
string CatID = "";
//--------begin----------这一步应该是你想要的
if (e.Item.FindControl("btnHideCatID") is Button)
{
Button btn = e.Item.FindControl("btnHideCatID") as Button;
CatID = btn.CommandArgument;
}
//--------end----------
if (e.Item.FindControl("RUser") is Repeater)
{
WebForm1BLL bll = new WebForm1BLL();
Repeater r = e.Item.FindControl("RUser") as Repeater;
r.DataSource = bll.GetUseByCatID(CatID);
r.DataBind();
}
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式