为什么在使控件可见时,selectedindexchanged事件不起作用

时间:2013-06-26 08:58:30

标签: c# asp.net

我试图让我的下拉列表在控件的selectedindexchanged事件中显示四个控件。

基本上,当用户从下拉列表中选择“服务器”时,事件应该触发,用户应该看到两个额外的选项。

到目前为止尝试了很多方法,包括text_changed事件,但没有。

这是我到目前为止所得到的

    //adds new fields to the form when the user selects server as the asset type
    protected void AddNewFields(object sender, EventArgs e)
    {
        //If the asset is a server then make the extra controls available
        if (TypeDDL.Text.Equals("Server"))
        {
            DNLabel.Visible.Equals(true);
            //DNLabel.Visible = true;
            DomainNameTB.Visible = true;
            RoleLabel.Visible = true;
            RoleDDL.Visible = true;
        }
    }


            <asp:DropDownList ID="TypeDDL" runat="server" DataSourceID="AssetTypeDS" 
                DataTextField="AssetTypeDescription" DataValueField="AssetTypeID" OnTextChanged="AddNewFields">
            </asp:DropDownList>

3 个答案:

答案 0 :(得分:2)

AutoPostback="True"添加到DropDownList,上面的代码应该触发

至于解释:下拉列表不会自动回发到服务器。更改选择发生在客户端。添加上述内容后,它会重新发布该页面。如果你不希望每次有人更改选择时整个页面都闪烁,你可以使用一些客户端Javascript或Jquery,或使用asp:UpdatePanel

答案 1 :(得分:1)

请设置AutoPostBack =&#34; True&#34; DropdownList的属性......

 

答案 2 :(得分:0)

在下拉列表中添加 AutoPostBack =“true”

<asp:DropDownList ID="TypeDDL" runat="server" DataSourceID="AssetTypeDS"  AutoPostBack="true"
                DataTextField="AssetTypeDescription" DataValueField="AssetTypeID" OnTextChanged="AddNewFields">
            </asp:DropDownList>