我在aspx页面中设置了以下多视图:
<asp:MultiView id="MultiView1" runat="server" ActiveViewIndex="0">
<asp:View id="View1" runat="server">
<asp:Repeater id="view_program" runat="server">
<ItemTemplate>
blah blah blah
</ItemTemplate>
</asp:Repeater>
</asp:View>
<asp:View id="View2" runat="server">
<asp:Repeater id="edit_program" runat="server">
<ItemTemplate>
<tr>
<td class="add_border_bold" nowrap>Status</td>
<td width="100%" class="add_border">
<asp:DropDownList id="p_status" runat="server">
</asp:DropDownList>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</asp:View>
</asp:MultiView>
而我正在尝试做的是动态填充我的page_load函数的下拉列表,我根据我已经能够在findcontrol上解密多少来编写以下代码
DropDownList p_status = View2.FindControl("p_status") as DropDownList;
if (p_status != null)
{
p_status.Items.Add(new ListItem("Green", "Green"));
}
但是,当我运行页面并单击按钮以在MultiView中加载View2时,下拉列表仍然完全为空。有什么想法吗?
答案 0 :(得分:1)
Dropdown位于转发器中,因此可以有多个下拉列表。
foreach (RepeaterItem item in edit_program.Items)
{
var ddl = (DropDownList)item.FindControl("p_status");
ddl.Items.Add(new ListItem("Green", "Green"));
}