一个下拉列表的回发会触发所有剩余下拉列表中的selectedindexchanged事件

时间:2013-06-20 10:08:57

标签: asp.net

示例:

  <asp:DropDownList runat="server" AutoPostBack="true" ID="ddlSample">
                                    <asp:ListItem Text="text1" />
                                    <asp:ListItem Text="text2" />
                                </asp:DropDownList>

现在,如果更改上述下拉列表中的项目,则会导致所有其他下拉列表回发事件。

   <asp:DropDownList EnableViewState="true" ID="ddlNewSelec" runat="server" 
     AutoPostBack="true" OnSelectedIndexChanged="ddlNewSelec_SelectedIndexChanged">
             <asp:ListItem Text="--Select Test Type--" Value="" />
   </asp:DropDownList>

详细说明:

页面已禁用 ViewState 。我尝试为各个下拉列表启用viewstate,但这没关系。

知道为什么会这样。

如果您需要更多详细信息,请与我们联系

编辑:

下拉列表会触发表单上所有其他下拉列表的selectedindexchanged事件。名为ddlSample的下拉列表不会导致回发,但为什么其他下拉列表的selectedindexchanged evenet会被激活。

其他信息:

所有输入都在updatePanel中,删除它们不会产生任何影响。

在页面加载中我没有在回发上做任何事情

   protected void Page_Load(object sender, EventArgs e)
   {
     if (!IsPostBack)
        {
            BindSomeDDLs();
         }
    }

2 个答案:

答案 0 :(得分:0)

您没有在“ddlSample”下拉列表中绑定SelectedIndexChanged事件。请尝试绑定该属性..

<asp:DropDownList ID="ddlSample" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlSample_SelectedIndexChanged">
    <asp:ListItem Text="text1" />
    <asp:ListItem Text="text2" />
</asp:DropDownList>

答案 1 :(得分:0)

答案似乎很奇怪但这是真的。

这只是因为EnableViewState属性设置为false而发生的。