下拉列表有条件的回发?

时间:2013-06-11 10:00:58

标签: asp.net drop-down-menu

我有一个下拉列表,其自动回发设置为true,selectedindexchanged事件用于某些逻辑。但条件是当页面上的其他数据发生变化时,我需要通过显示确认对话框来警告用户有关更改。我正在使用javascript来执行此操作但问题是即使函数返回true也不会发回。我不知道什么是错的。一些人可以帮忙解决这个问题。

function ValidateDataChange() {
        var isDataChanged = $('#<%=hdnDataIsChanged.ClientID %>').val();
        if (isDataChanged == "True") {
            alert(isDataChanged);
            return false;
        }

        return true;
    }

  <asp:DropDownList ID="ddlHierarchy" runat="server" AppendDataBoundItems="true" AutoPostBack="true"
                        onchange="return ValidateDataChange();" Enabled="false" OnSelectedIndexChanged="ddlHierarchy_SelectedIndexChanged">
                        <asp:ListItem Value="" Text="--Select Hierarchy--"></asp:ListItem>
                    </asp:DropDownList>
  <asp:HiddenField ID="hdnDataIsChanged" runat="server" />


 protected void ddlHierarchy_SelectedIndexChanged(object sender, EventArgs e)
    {
      //mycode
    }

1 个答案:

答案 0 :(得分:3)

selectedIndexChanged绑定到DDL客户端的onchange事件。

写作

onchange="return ValidateDataChange();"

你其实在做:

onchange="return ValidateDataChange(); __doPostBack(this.id,'');"

由于返回,__doPostBack永远不会被击中。

你应该尝试:

onchange="if(!ValidateDataChange()) return false;"