如何将repeater中点击的值绑定姓名的id 传到datalist的itemdatabound中
1个回答
2014-12-22 · 知道合伙人互联网行家
关注
展开全部
双循环,这个简单
写起来有点复杂
第一步:在第一个循环体里面放一个Hidden,这个Hidden的值就是id,例如:
<asp:HiddenField ID="hc1" runat="server" Value='<%#Eval("id") %>' />
第二步:
很关键,DataList绑定之后会触发一个ItemDataBound事件,右键》属性》点那个闪电的图标》选择事件就可以看见,双击这个事件会自动在后台生成一个方法:
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
HiddenField hcid = (HiddenField)e.Item.FindControl("hc1");//这个是上面那个隐藏域的ID,通过行对象找到,再强制转化,然后就可以hcid.Value,就可以得到每次循环时那个id的值,再通过这个ID查找数据
DataList dt2 = (DataList)e.Item.FindControl("DataList2");//通过行对象找到嵌套在里面的那个DataList2,再强制转化为DataList类型
dt2.DataSource = "你的数据源";
dt2.DataBind();//绑定第二个DataList
}
多个循环也一样,以此类推
写起来有点复杂
第一步:在第一个循环体里面放一个Hidden,这个Hidden的值就是id,例如:
<asp:HiddenField ID="hc1" runat="server" Value='<%#Eval("id") %>' />
第二步:
很关键,DataList绑定之后会触发一个ItemDataBound事件,右键》属性》点那个闪电的图标》选择事件就可以看见,双击这个事件会自动在后台生成一个方法:
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
HiddenField hcid = (HiddenField)e.Item.FindControl("hc1");//这个是上面那个隐藏域的ID,通过行对象找到,再强制转化,然后就可以hcid.Value,就可以得到每次循环时那个id的值,再通过这个ID查找数据
DataList dt2 = (DataList)e.Item.FindControl("DataList2");//通过行对象找到嵌套在里面的那个DataList2,再强制转化为DataList类型
dt2.DataSource = "你的数据源";
dt2.DataBind();//绑定第二个DataList
}
多个循环也一样,以此类推
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询