我有一个自定义用户控件,它是一个下拉框,旁边有一个按钮。
<asp:Panel ID="pnlSelect" runat="server">
<asp:Label ID="lblNameSelect" runat="server" Text="Name"></asp:Label>:
<asp:DropDownList ID="ddlDivision" runat="server"></asp:DropDownList>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" />
</asp:Panel>
我需要在运行时创建它。
UserControl.UCDropDownBox drpDivision = LoadControl("~/UserControl/UCDropDownBox.ascx") as UserControl.UCDropDownBox;
drpDivision.ID = "drp1";
drpDivision.LabelText = "Division";
drpDivision.DataSource = dt;
drpDivision.DataTextField = "colDescription";
drpDivision.DataValueField = "colValue";
phFormContent.Controls.Add(drpDivision);
现在我想在单击第一个usercontrol的按钮时生成下一个usercontrol(相同的usercontrol),这样我就可以从第一个usercontrol中获取selectedvalue。
答案 0 :(得分:0)
如果将UserControl放在Repeater中,这不会更容易吗?
<asp:Repeater ID="multiControls" runat="server">
<ItemTemplate>
<asp:Panel ID="pnlSelect" runat="server">
<asp:Label ID="lblNameSelect" runat="server" Text="Name"></asp:Label>:
<asp:DropDownList ID="ddlDivision" runat="server"></asp:DropDownList>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" />
</asp:Panel>
</ItemTemplate>
</asp:Repeater>
然后,您可以将对象集合绑定到Repeater。采用这种方法来解决您的问题,您需要做的就是: -
这不仅极大地简化了新用户控件对象的创建,而且还使得加载以前持久化的数据变得更加容易。