C#中我Datalist里面再套一个Datalist,怎么为里面的Datalist绑定数据,外边的datalist中有一个值id
3个回答
展开全部
双循环,这个简单
写起来有点复杂
第一步:在第一个循环体里面放一个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
}
多个循环也一样,以此类推
展开全部
这个好像没办法吧,其实你可以考虑其他的方法解决这个问题,datalist属于弱类型,你可以考虑用dictionary
Dictionary<int,T> dd=new Dictionary<int,T>
T:定义一个里面datalist表的实体类
int:你的id
Dictionary<int,T> dd=new Dictionary<int,T>
T:定义一个里面datalist表的实体类
int:你的id
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你想解决什么问题?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询