我的页面上有以下复选框:
<asp:CheckBox ID="rbBuilding" runat="server" AutoPostBack="True" OnCheckedChanged="HandlerPackageOnCheckedChanged" Checked="True" CausesValidation="False" />
<asp:CheckBox ID="rbContent" runat="server" AutoPostBack="True" OnCheckedChanged="HandlerPackageOnCheckedChanged" CausesValidation="False" />
基于点击的复选框组合,回发上有一个逻辑。除了一个案例外,一切都很好:
我正在打开额外的telerik radwindow,它在自己的验证组中进行了一些验证。如果我关闭窗口时出现任何验证错误,那么首先单击任何一个复选框 不做postpack。
只有第一次点击无效。下次我点击一切正常。我试图将复选框添加到他们自己的验证组并将套管验证更改为true。但行为完全一样。当我为该复选框添加测试javascript方法onclick时,这个方法被解雇没有问题。没有回发。
我还尝试在窗口关闭时重置窗口验证组的所有验证器,它们被重置,但行为没有检查,并且第一次单击不起作用。
更新:
我再做了一次检查并意识到只有在javascript中才会发生这种情况:
window.Page_ClientValidate("MyGroup")
在弹出窗口进行一些计算之前我必须做的事情。 在动态验证器期间,更新可验证控件时,即使验证失败,eveything也能正常工作。所以问题是* Page_ClientValidate *
答案 0 :(得分:2)
我知道这是一个老问题,但我遇到了几乎所有问题,并且由于以下链接,我能够解决问题:
Issue with postbacks and clicking on controls twice
我最后将此代码添加到我的代码后面,为复选框的点击事件添加了一个javascript事件处理程序:
Checkbox1.Attributes.Add("onclick", "checkboxChanged();");
然后我添加了以下javascript:
function checkboxChanged(arg1) {
Page_BlockSubmit = false;
}
我的情境中的复选框也设置为将CausesValidation设置为false,但我不认为此修复程序需要这样做。希望这有助于某人。