0

我在我正在处理的网站的登录页面中DropDownList添加了一个。Toolbox

一旦我ListItemDropDownList(在我的情况下,比如说健身房......)中选择一个,当点击时,我希望我们将在我的下方打开三个栏DropDownList(例如,我们将打开的栏是用户名,密码和 ID),我的意思是三个文本框在彼此下方。

http://imageshack.us/photo/my-images/854/w7wn.jpg

4

5 回答 5

0
<select>
<option value="1">Gym 1</option>
<option value="2">Gym 2</option>
<option value="3">Gym 3</option>
<select>
于 2013-10-13T14:47:56.840 回答
0

您可以使用 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。

于 2013-10-14T20:57:12.590 回答
0

您可能真正需要的是动态文本框。

在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);
            }
        }
    }
于 2013-10-14T05:53:51.217 回答
0

我认为您可以尝试 SelectedIndexChanged 事件或 Javascript 来显示文本框而无需回发。

于 2013-10-13T14:43:34.777 回答
0

首先,您将文本框放在面板中,然后隐藏此面板,您应该将 drobdownlist 的 Autopostback 属性设置为 True,然后在 DropDownList 中选择一个项目后,将进行回发。因此,您可以显示该面板包含文本框。

于 2013-10-14T04:14:09.653 回答