【发布时间】:2012-10-31 09:08:33
【问题描述】:
我有一个带有下拉控件的 asp.net 网页,如下所示:
<asp:DropDownList ID="TypeDrp" runat="server"
OnSelectedIndexChanged="LoadCorrectForm" AutoPostBack="True">
<asp:ListItem>X</asp:ListItem>
<asp:ListItem>Y</asp:ListItem>
<asp:ListItem>Z</asp:ListItem>
</asp:DropDownList>
<br />
<asp:PlaceHolder ID="PlaceHolder1" runat="server">
</asp:PlaceHolder>
我想在回发后动态加载 placeholder1 中的控件。它们位于名为“myControls”的文件夹中,如下所示:
XTypeForm.ascx
YTypeForm.ascx
ZTypeForm.ascx
我应该如何正确调用和使用它们? 有人告诉我这样使用:
protected void LoadCorrectForm(object sender, EventArgs e)
{
string SelectedValue = TypeDrp.SelectedItem.ToString();
Control userControl = GetSpecificUserControl(SelectedValue);
PlaceHolder1.Controls.Clear(); // Remove old user control
PlaceHolder1.Controls.Add(userControl);
}
但它有错误,我不知道如何为我自己的代码更改它?
【问题讨论】:
-
问题出在 TypeDrp.SelectedItem.ToString()
-
Item 是文本和值的集合。您将值“要加载的控件的名称”放在哪里。如果它在下拉列表的值中,则将其替换为选定的值。
标签: c# asp.net user-controls autopostback