【问题标题】:ASP.NET button options.clientSubmit is set to falseASP.NET 按钮 options.clientSubmit 设置为 false
【发布时间】:2011-11-21 22:15:45
【问题描述】:

我有一个 ASP.NET 按钮,它有时不会回发。我在IE开发人员中检查了这个,发现当按钮不起作用时options.clientSubmit在函数WebForm_DoPostBackWithOptions()中设置为false

我的按钮代码

<asp:Button 
           runat="server" 
           ID="btnSubmit" 
           CssClass="button" 
           OnClick="btnSubmit_Click"  
           meta:resourcekey="btnSubmitResource1" />

内部WebForm_DoPostBackWithOptions(options)

    if (options.clientSubmit) {
    __doPostBack(options.eventTarget, options.eventArgument);
    }

谁能告诉我为什么该按钮有时有效,有时无效?我应该怎么做才能让它一直工作?

【问题讨论】:

  • 里面有问题吗?我一个都看不到。
  • 我做了一些修改,现在可以看到问题了吗?
  • 我有类似的问题,但我使用的是 OnClientClick。 clientSubmit 选项在生成的代码中被硬编码为 false: WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("enroll1$btnSubmitCC", "", true, "", "", false, false));
  • 我在单击提交时遇到脚本错误,但由于事件验证异常,仅在 FireFox 中出现。仍在试图找出原因,但只是想我会分享,因为脚本错误现在几乎隐藏在 FireFox 中。
  • 你在使用更新面板吗?

标签: c# .net asp.net webforms postback


【解决方案1】:

这可能是一种可能性:

检查页面上是否有任何Validators 尚未分组到任何ValidationGroup 并且可能可见为假(可能是由于容器可见为假)。这个验证器可能正在验证在这种情况下不相关的控件,并导致回发取消说它无效。

如果您找到任何相关控件,请将所有相关控件分组,将 ValidationGroup 分配给所有相应的 Validators,然后将该组分配给您的提交控件(以导致回发的为准)。这是我见过的最常见的错误..

【讨论】:

    【解决方案2】:

    您没有使用任何东西来防止重复提交表单?

    我遇到了完全相同的问题,.Net 验证方法表明表单是有效的,但是 options.clientSubmit 总是错误的:S

    罪魁祸首竟然是:

    <script type="text/javascript">
        $(document).ready(function() {
            $('.prevDblSubmit').preventDoubleSubmit();
        })
    </script>
    

    【讨论】:

      【解决方案3】:

      尝试添加 CausesValidation = "False" 看看会发生什么。我怀疑你有一些没有通过的验证。

      【讨论】:

        【解决方案4】:

        这似乎应该有效,而不是使用 meta:resourcekey="btnSubmitResource1",尝试显式本地化。见问题:ASP.NET: explicit vs implicit localization?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-05-15
          • 1970-01-01
          • 2014-08-08
          • 1970-01-01
          • 1970-01-01
          • 2015-09-24
          • 2012-07-14
          相关资源
          最近更新 更多