这个功能如何实现?
关于repeater嵌套的问题,里面的repeater如何得到外面的字段值?里面的repeater如下:<asp:RepeaterID="rptCDAttributes"...
关于repeater嵌套的问题,里面的repeater如何得到外面的字段值?
里面的repeater如下:
<asp:Repeater ID="rptCDAttributes" runat="server" DataSource=<%#GetCDAttributes()%>>
<ItemTemplate>
<tr>
<td style="height:30px; text-align:left;"><%#Eval("Name")%> +<%#Eval("price")%></td>
<td align="left">
<input type="checkbox" id="CDAttributes<%#Eval("ididex")%>" class="no" runat="server" value=<%#Eval("ididex")%>/>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
其中id="CDAttributes<%#Eval("ididex")%>" 在这里是区别了,但是外面的repeater执行完还是出现了
CDAttributes1 CDAttributes2 CDAttributes3
CDAttributes1 CDAttributes2 CDAttributes3
这样的现象,根据id根本不能区别。
我想CDAttributes<%#Eval("ididex")%>"+外层的字段ID值
这样就能区分了,如何实现? 展开
里面的repeater如下:
<asp:Repeater ID="rptCDAttributes" runat="server" DataSource=<%#GetCDAttributes()%>>
<ItemTemplate>
<tr>
<td style="height:30px; text-align:left;"><%#Eval("Name")%> +<%#Eval("price")%></td>
<td align="left">
<input type="checkbox" id="CDAttributes<%#Eval("ididex")%>" class="no" runat="server" value=<%#Eval("ididex")%>/>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
其中id="CDAttributes<%#Eval("ididex")%>" 在这里是区别了,但是外面的repeater执行完还是出现了
CDAttributes1 CDAttributes2 CDAttributes3
CDAttributes1 CDAttributes2 CDAttributes3
这样的现象,根据id根本不能区别。
我想CDAttributes<%#Eval("ididex")%>"+外层的字段ID值
这样就能区分了,如何实现? 展开
展开全部
rptCDAttributes的datasource不要这样绑定
要通过rptCDAttributes的父repeater的ItemDataBound绑定,假设父repeater是Repeater1
示例代码如下:
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Repeater r2 = (Repeater)e.Item.FindControl("r2"); //子repeater
string ParentId = DataBinder.Eval(e.Item.DataItem, "id").ToString();//父id
//////////////////////
DataTable dt = new DataTable();
dt.Columns.Add("childid");
DataRow row;
row=dt.NewRow();
row["childid"]=ParentId;
dt.Rows.Add(row);
///////////////////
//以上这一段可以根据父ID select到dataset 然后绑定
r2.DataSource = dt;
r2.DataBind();
}
要通过rptCDAttributes的父repeater的ItemDataBound绑定,假设父repeater是Repeater1
示例代码如下:
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Repeater r2 = (Repeater)e.Item.FindControl("r2"); //子repeater
string ParentId = DataBinder.Eval(e.Item.DataItem, "id").ToString();//父id
//////////////////////
DataTable dt = new DataTable();
dt.Columns.Add("childid");
DataRow row;
row=dt.NewRow();
row["childid"]=ParentId;
dt.Rows.Add(row);
///////////////////
//以上这一段可以根据父ID select到dataset 然后绑定
r2.DataSource = dt;
r2.DataBind();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询