我有一个下拉列表,其自动回发设置为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
}
答案 0 :(得分:3)
selectedIndexChanged绑定到DDL客户端的onchange事件。
写作
onchange="return ValidateDataChange();"
你其实在做:
onchange="return ValidateDataChange(); __doPostBack(this.id,'');"
由于返回,__doPostBack
永远不会被击中。
你应该尝试:
onchange="if(!ValidateDataChange()) return false;"