【问题标题】:Validation prevent check box to auto postback验证防止复选框自动回发
【发布时间】:2012-08-02 08:24:45
【问题描述】:

我的页面上有以下复选框:

<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,它在自己的验证组中有一些验证。如果我因任何验证错误而关闭窗口,则首先单击任何复选框 不做邮包。

只有第一次点击不起作用。下次我点击一切正常。我尝试将复选框添加到他们自己的验证组并将大小写验证更改为 true。但行为完全相同。当我将测试 javascript 方法添加到该复选框的 onclick 时,该方法会被触发而不会出现问题。只是没有回发。

我还尝试在窗口关闭时重置窗口验证组的所有验证器,它们已重置,但行为未检查,并且第一次单击不起作用。

更新

我又做了一次检查,发现只有在我使用 javascript 时才会发生这种情况:

window.Page_ClientValidate("MyGroup")

在弹出窗口上做一些计算之前我必须做的。 在动态验证器期间,当更新可验证控件时,一切都正常工作,即使验证失败。所以问题是*Page_ClientValidate*

【问题讨论】:

  • 我相信我遇到了同样的问题。你解决过这个问题吗?
  • 不,恐怕不是,而且我已经有 2 年没有从事那个项目了。
  • 感谢您的回复。我确实设法解决了这个问题并发布了答案,以防其他人像我一样偶然发现这个问题。

标签: c# javascript asp.net validation


【解决方案1】:

我知道这是一个老问题,但我几乎遇到了确切的问题,感谢以下链接,我能够解决问题:

Issue with postbacks and clicking on controls twice

我最终将此代码添加到我后面的代码中,以便为复选框的点击事件添加一个 javascript 事件处理程序:

Checkbox1.Attributes.Add("onclick", "checkboxChanged();");

然后我添加了以下 javascript:

function checkboxChanged(arg1) {
  Page_BlockSubmit = false;
}

在我的情况下,复选框也设置为将 CausesValidation 设置为 false,但我认为此修复不需要这样做。希望这对某人有所帮助。

【讨论】:

    猜你喜欢
    • 2013-05-01
    • 1970-01-01
    • 2015-01-14
    • 2016-10-29
    • 2016-07-18
    • 2011-06-29
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    相关资源
    最近更新 更多