我在这里尝试正确设置嵌套控件列表的数据源。
基本理念:
我有一个 asp:repeater 项目。里面有一个 DropDownList 和一个 BulletedList 加上一个 Button。
我想从中继器中的选定行中添加 DropDownList 中的选定项,以将其添加到选定行的 BulletedList 中。
到目前为止,我设法用 OnItemDataBound 和 OnClick 做到了这一点,这非常好。问题是事件 OnClick在OnItemDataBdound之后被触发。要查看我在 BulletedList 的数据源中添加的项目,我必须刷新页面。
我试过这个:
((BulletedList)src.FindControl("sharedPlanDomains")).Items.Clear();
接着
((BulletedList)src.FindControl("sharedPlanDomains")).Datasource = myobject;
((BulletedList)src.FindControl("sharedPlanDomains")).DataBind();
但它似乎不起作用。
((BulletedList)src.FindControl("sharedPlanDomains")).DomainsAssociated.ForEach(f => list.Items.Add(new ListItem { Text = f.Name }));
也不行。
有什么建议吗?
[编辑:澄清]
假设我有这个结构:
托管计划:i-Perso
域:[下拉列表] [按钮:关联]
关联域:- google.com
- google2.com
托管计划:i-Mense 域:[下拉列表] [按钮:关联] 关联域:
- google3.com
所以让我们举个例子,我点击第一个下拉列表并选择域 google4.com,然后 google4.com 将被添加到 i-Perso 行的项目符号列表的数据源中。
我在这里要做的是关联域和计划。如果它只是 1 - 1 的关系,但它是 1 - Multiple 的关系,我会做得更好。