我在我正在处理的网站的登录页面中DropDownList
添加了一个。Toolbox
一旦我ListItem
在DropDownList
(在我的情况下,比如说健身房......)中选择一个,当点击时,我希望我们将在我的下方打开三个栏DropDownList
(例如,我们将打开的栏是用户名,密码和 ID),我的意思是三个文本框在彼此下方。
我在我正在处理的网站的登录页面中DropDownList
添加了一个。Toolbox
一旦我ListItem
在DropDownList
(在我的情况下,比如说健身房......)中选择一个,当点击时,我希望我们将在我的下方打开三个栏DropDownList
(例如,我们将打开的栏是用户名,密码和 ID),我的意思是三个文本框在彼此下方。
<select>
<option value="1">Gym 1</option>
<option value="2">Gym 2</option>
<option value="3">Gym 3</option>
<select>
您可以使用 MultiveView 控件。并在 Dropdown 的 selectedIndexChanged 事件中设置活动视图索引。我为你写了一些示例代码:
ASPx 方面:
<asp:MultiView ID="multiView" ActiveViewIndex="-1" runat="server">
<asp:View ID="viewGym" runat="server">
<asp:TextBox ID="txtBxUserName" runat="server" />
<asp:TextBox ID="txtBxPassword" runat="server" />
<asp:TextBox ID="txtBxId" runat="server" />
</asp:View>
</asp:MultiView>
<asp:DropDownList ID="Dropdownlist1" runat="server" AutoPostBack="true"
onselectedindexchanged="Dropdownlist1_SelectedIndexChanged">
<asp:ListItem Text="Choose one club" Value="0" />
<asp:ListItem Text="Gym" Value="1" />
<asp:ListItem Text="Shoppers" Value="2" />
</asp:DropDownList>
代码背后:
protected void Page_Load(object sender, EventArgs e)
{
if ( IsPostBack ) //don't forget :)
return;
}
protected void Dropdownlist1_SelectedIndexChanged( object sender, EventArgs e )
{
if ( Dropdownlist1.SelectedValue == "1" ) //Gym item selected
{
multiView.ActiveViewIndex = 0; //Gym view active
}
}
如果您想在第一页加载时任何视图不活动,那么您可以在 aspx 代码中将 ActiveViewIndex 设置为 -1。
您可能真正需要的是动态文本框。
在html部分:
<asp:DropDownList runat="server" ID="DDL1" autopostback = "true" onselectedindexchanged="DDL_SelectChanged" />
<asp:PlaceHolder runat="server" ID="PH1">
</asp:PlaceHolder>
在代码隐藏中:
void DDL_SelectChanged(object sender, EventArgs e)
{
if (DDL1.SelectedIndex == 1)
{
for (int i = 0; i < 3; i++)
{
TextBox newTB = new TextBox();
newTB.ID = "TB" + i;
PH1.Controls.Add(newTB);
}
}
}
我认为您可以尝试 SelectedIndexChanged 事件或 Javascript 来显示文本框而无需回发。
首先,您将文本框放在面板中,然后隐藏此面板,您应该将 drobdownlist 的 Autopostback 属性设置为 True,然后在 DropDownList 中选择一个项目后,将进行回发。因此,您可以显示该面板包含文本框。