【问题标题】:asp.net Button OnClick event not firingasp.net Button OnClick 事件未触发
【发布时间】:2013-03-12 06:44:39
【问题描述】:

asp.net 按钮控制有问题。

我在表单中定义了一个按钮,当我点击按钮时,onclick 按钮事件没有触发。

<asp:Button ID="btn_QuaSave" runat="server" Text="SAVE" OnClick="btn_QuaSave_Click" /> 

protected void btn_QuaSave_Click(object sender, EventArgs e)
{

}

【问题讨论】:

  • 你怎么知道事件没有触发?
  • 尝试下断点
  • 检查按钮的 CausesValidation 属性。如果为真,则将其设置为 False。还要检查您的 asp.net 页面代码文件链接是否与您放置事件的链接完全相同。
  • 按钮是否在模板控件内(例如&lt;asp:Repeater&gt;&lt;asp:GridView&gt;)?

标签: c# asp.net


【解决方案1】:

因为您的按钮位于control 中,可能是另一个控件的验证不允许按钮提交。 在我的情况下,结果是将CausesValidation 属性添加到按钮:

<asp:Button ID="btn_QuaSave" runat="server" Text="SAVE" OnClick="btn_QuaSave_Click" CausesValidation="False"/> 

【讨论】:

    【解决方案2】:

    您是否从其他页面/应用程序复制了此方法?如果是则它将不起作用,因此您需要删除分配给按钮的事件和事件名称然后转到设计并转到按钮甚至属性转到onClick事件双击它旁边,它会生成事件并自动分配按钮的事件名称。 这应该工作

    【讨论】:

    • 我没有从其他页面复制它
    • 我最终阅读了您的答案并决定移动页面,创建一个名称相同的新页面,然后手动将标记和代码移到后面。像魅力一样工作!
    【解决方案3】:

    如果您在 onclick 事件中使用 updatepanel,则可能会发生这种情况。

    在您的页面标记中使用“EnableEventValidation="false"',如下所示:

    <%@ Page Language="C#" MasterPageFile="~/ars_home.master" AutoEventWireup="true" CodeFile="Transaction_Window.aspx.cs" Inherits="Transaction_Window" EnableEventValidation="false" %>
    

    希望对你有帮助

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,我的 aspnet 按钮的点击没有触发。事实证明,页面其他部分的某些地方有一个带有 html“必需”属性的输入。

      这听起来可能很奇怪,但是一旦我删除了 required 属性,按钮就会正常工作。

      【讨论】:

      • 太奇怪了。这个错误让我重新编写了我的代码。还是一样。谢谢你的提示。不得不表扬你先生。
      • 如果您可以忽略必填字段,请将 CausesValidation="false" 放入您的 asp:button
      【解决方案5】:

      在我的例子中,我将 required="required" 放在 CKEditor 控件中。
      删除此属性解决了该问题。
      之前

      <CKEditor:CKEditorControl ID="txtDescription" BasePath="/ckeditor/" runat="server" required="required"></CKEditor:CKEditorControl>
      

      之后

      <CKEditor:CKEditorControl ID="txtDescription" BasePath="/ckeditor/" runat="server"></CKEditor:CKEditorControl>
      

      【讨论】:

      • 是的,有人在 aspx 中插入了一个必需的。
      • @SixOThree 您知道,您的评论实际上就是答案!非常感谢。
      【解决方案6】:

      我遇到了类似的问题,但没有一个答案对我有用。也许有人发现我的解决方案很有帮助。如果您不介意在单击按钮时提交,则仅附加到单击事件设置 UseSubmitBehavior="false" 可能值得一试。

      【讨论】:

        【解决方案7】:

        我遇到了同样的问题,确实都更改了按钮和所有上述方法,然后我做了一件简单的事情,我在一个页面上使用了两个表单,并在表单中使用了表单,所以我删除了一个并且它起作用了 :)

        【讨论】:

        • 这对我有用。就我而言,我下载的模板有一个我删除的表单元素。
        【解决方案8】:

        尝试Clean您的解决方案,然后再试一次。

        它肯定会起作用。因为代码中的每一件事似乎都没有问题。

        通过此链接获取清洁解决方案>

        http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/e53aab69-75b9-434a-bde3-74ca0865c165/

        【讨论】:

          【解决方案9】:

          尝试在 Visual Studio 中进入设计模式,找到按钮并双击应该设置事件的按钮。否则,一旦在 Design more 中选择了按钮,请转到属性并尝试从那里进行设置。

          【讨论】:

            【解决方案10】:

            为您的验证器元素添加验证组。这允许您区分要包含在验证中的不同组。将验证组也添加到您的提交按钮

            【讨论】:

              【解决方案11】:

              就我而言: 确保页面中除了顶部主表单之外不存在任何表单元素, 这导致事件未触发

              【讨论】:

                【解决方案12】:

                如果 asp 按钮在 &lt;a href="#"&gt; &lt;/a&gt; 标记内,那么 Click 事件也不会引发。

                希望它对某些人有用。

                【讨论】:

                • 这就是魔法!我试图使用 JqueryModal 从模式弹出窗口调用登录表单。把它拉出来,砰!有效。谢谢。
                【解决方案13】:

                如果将 LinkBut​​ton 嵌套在 Repeater 中,您必须使用类似于以下内容的内容:

                <asp:LinkButton ID="LinkButton1" runat="server" CommandName="MyUpdate">LinkButton</asp:LinkButton>
                
                 protected void Repeater1_OnItemCommand(object source, RepeaterCommandEventArgs e)
                 {
                    if (e.CommandName.Equals("MyUpdate"))
                    {
                        // some code
                    }
                 }
                

                【讨论】:

                  【解决方案14】:

                  如果在您单击提交按钮时它没有引发错误但仍未触发单击事件,请尝试将action="YourPage.aspx" 添加到您的表单中。

                  【讨论】:

                    【解决方案15】:

                    即使我有两种形式,一种用于桌面视图,另一种用于移动视图,删除的一种形式对我有用。我知道 asp.page 应该只有一个表单。

                    【讨论】:

                      猜你喜欢
                      • 2013-04-25
                      • 2013-07-01
                      • 2013-04-30
                      • 2012-01-24
                      • 1970-01-01
                      • 1970-01-01
                      • 2020-05-01
                      • 1970-01-01
                      • 2020-01-31
                      相关资源
                      最近更新 更多