【问题标题】:ASP.NET button not firing on click eventASP.NET 按钮未在单击事件上触发
【发布时间】:2014-01-14 21:28:16
【问题描述】:

我是 Asp.net 的新手,我的问题可能不是那么专业。我在我的 asp.net 网络表单项目中使用Udemy.com 的设计。我将udemy 的页眉和页脚放在masterpage 中。但是,当我将按钮添加到 m 个 Web 表单之一时,单击事件不会触发。

<asp:Button ID="Button1" runat="server" onclick="Button1_Click1" Text="Button" />

protected void Button1_Click1(object sender, EventArgs e)
{
    Page.Title = "Sample Text";
}

为了解决这个问题,我从我的页面中删除了所有脚本。我还尝试将 CausesValidation 设置为 False。但没有任何帮助。 你能帮我解决这个问题吗?

更新

我将 OnClick 事件添加到我的代码中。但我仍然面临这个问题。

【问题讨论】:

  • 先找谷歌,然后在这里问,在这里学习:msdn.microsoft.com/en-us/library/…
  • 您没有在您的 asp 代码中添加 OnClick="Button1_Click。
  • 打开浏览器的javascript控制台,看看点击按钮是否有错误。

标签: c# asp.net events button


【解决方案1】:

前面的所有答案都是正确的,除了你“已经添加”了 OnClick 事件到 “.aspx”文件。 我不知道它是您正在使用的模板中的内容,还是代码中的其他地方。但我建议您检查以下内容(根据我陷入类似情况的经验):

  1. “.aspx”页面中是否有任何字段验证器?也许其中一个验证器已被触发,如果它们没有任何错误消息。
  2. 您是否从其他地方复制了该按钮?如果是,则尝试添加一个新按钮并添加其单击事件,方法是在设计模式下双击该按钮。因为有时“OnClick”按钮的事件未在“.designer.cs”文件中注册。

【讨论】:

  • 我有来自其他地方的字段验证器...他们将显示设置为无 ¬¬谢谢!我觉得自己很愚蠢
  • 如果您有带有验证器的隐藏字段,则可能会再次出现此问题。我发现了类似的情况,我用验证器字段隐藏了这样的行。 。删除/为字段分配默认值,修复了问题。
【解决方案2】:

您可以尝试一些要点...您发布的代码(更新后)应该可以工作。

  • 如果您打开 Visual Studio 的设计部​​分并双击按钮,这将引导您点击该按钮的事件,如果没有一个事件,那么它会为您创建一个。
  • 您的按钮必须在表单标签内。
  • 要测试点击事件是否触发,请使用Breakpoints 而不是标签或任何其他标记更改,但如果您需要...您应该检查Title 组件是否具有runat="server" 属性并且它在更新中控制板。

【讨论】:

  • 虽然没有解决我的问题,但我绝对不会考虑使用设计部分来检查事件是否正确
【解决方案3】:

这是一个示例代码,您在按钮中错过了“OnClick="MyButton_Click"。

aspx

<asp:Button ID="MyButton" **OnClick="MyButton_Click"** runat="server" />
code behind

protected void **MyButton_Click**(object sender, EventArgs e)
{
    // Put code here over there chuhu
}

【讨论】:

    【解决方案4】:

    添加CausesValidation = "false"按钮属性,如:

    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" CausesValidation="false"></asp:Button>
    

    【讨论】:

      【解决方案5】:

      您缺少OnClick="Button1_Click"。 你需要像这样添加事件

      <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"></asp:Button>
      

      【讨论】:

        【解决方案6】:

        如果您在后面的代码中分配点击处理程序,请确保它不在 IsPostBack == false 检查内:

        void Page_Load (object oSender, EventArgs oEventArgs)
        {
           if (IsPostBack == false)
           {
               oButton += new EventHandler(oButton_Click); // does not work
           }
           oButton += new EventHandler(oButton_Click); // does work
        }
        

        【讨论】:

          【解决方案7】:

          你的按钮应该是这样的

          <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/>
          

          【讨论】:

            【解决方案8】:

            你能试试这个吗:

            <asp:Button ID="Button1" runat="server" Text="Button" onClick="Button1_Click" />
            

            您没有提到按钮单击事件的事件处理程序。

            希望对你有帮助。

            【讨论】:

              【解决方案9】:

              尝试将按钮放置在表单标签中

              作为

              <form id="#" runat="Server">
              <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"></asp:Button>
              </form>
              

              【讨论】:

                【解决方案10】:

                这是一个示例代码,您的按钮中错过了“OnClick="MyButton_Click"。

                aspx

                <asp:Button ID="MyButton" **OnClick="MyButton_Click"** runat="server" />
                

                后面的代码

                protected void **MyButton_Click**(object sender, EventArgs e)
                {
                    // Put code here
                }
                

                我个人的回答是,你需要在谷歌中学习更多的东西

                asp.net 的一些最佳教程

                http://www.w3schools.com/aspnet/default.asp

                http://www.asp.net/web-pages/tutorials

                http://asp.net-tutorials.com/

                http://quickstarts.asp.net/QuickStartv20/default.aspx可以从MSDN website学到很多知识

                可以了解更多asp.net控件等......

                【讨论】:

                  【解决方案11】:

                  试试这个

                  <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"></asp:Button>
                  

                  这是您的页面指令吗?

                   <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
                  

                  【讨论】:

                    【解决方案12】:

                    请检查按钮是否在 yourpage.aspx.designer.cs 文件中正确定义。

                    类似下面的代码:

                    protected global::System.Web.UI.WebControls.Button Button1;
                    

                    【讨论】:

                      【解决方案13】:

                      这样的页面指令

                      Default.aspx

                      <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
                      

                      HTML

                      <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
                      

                      下面的代码应该在Default.aspx.cs

                      里面
                      protected void Button1_Click(object sender, EventArgs e)
                          {
                              Page.Title = "Sample Text";
                          }
                      

                      我猜可能出问题的地方是指令中可能有问题

                      Default.aspx

                      <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
                      

                      否则你不会在 form 标签内调用 asp:Button 标签

                       <form id="form1" runat="server">
                          <div>
                      
                              <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
                      
                          </div>
                          </form>
                      

                      【讨论】:

                        【解决方案14】:

                        请在线测试aspdotnetfiddle中的简单示例。

                        创建带有单个按钮和标签控件的示例程序,当单击按钮时,触发按钮的单击事件,并分配标签文本值。

                        【讨论】:

                          【解决方案15】:

                          在我的情况下,它没有触发事件,因为我将按钮附加到母版页的正文中,而 &lt;form&gt; 标记位于 &lt;body&gt; 标记中

                          我已经通过将按钮附加到&lt;form&gt; 标签解决了这个问题

                          旧代码

                          $('body').append($(".ButtonsDiv"));
                          

                          新代码

                          $('#form1').append($(".ButtonsDiv"));
                          

                          【讨论】:

                            【解决方案16】:

                            如果您有两个按钮和两个验证摘要,则必须为每个验证摘要、文本框和按钮添加 ValidationGroup = "Group2"

                            对于另一个添加:ValidationGroup="Group1",它应该可以工作。

                            【讨论】:

                              【解决方案17】:

                              如果问题是验证触发并且您的按钮不应触发验证,请考虑将 CausesValidation="false" 添加到按钮的属性中。

                              【讨论】:

                                【解决方案18】:

                                Javascript 可能会在您的页面上静默失败,从而导致处理被放弃,从而阻止点击事件触发。 如果我怀疑发生了这种情况,我会在调试前立即将其粘贴到脚本标记下:

                                window.onerror = function (message, filename, linenumber) {
                                        alert("JS error: " + message + " on line " + linenumber + " for " + filename);
                                }
                                

                                删除生产代码。

                                【讨论】:

                                  【解决方案19】:

                                  检查并尝试删除其他输入元素上的“必需”属性。 它适用于我的情况.. 我花了一段时间才找到它。

                                  也在这里阅读这个问题..同样的问题 asp.net Button OnClick event not firing

                                  【讨论】:

                                    猜你喜欢
                                    • 2010-10-21
                                    • 2011-12-02
                                    • 1970-01-01
                                    • 2020-05-01
                                    • 2013-05-11
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 2013-01-17
                                    • 2012-03-14
                                    相关资源
                                    最近更新 更多