ASP.NET按钮未在单击事件上触发

时间:2013-12-27 09:29:33

标签: c# asp.net events button

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

<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事件。但我仍然面临这个问题。

19 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:4)

这是一个示例代码,您错过了&#34; OnClick =&#34; MyButton_Click&#34;在你的按钮。

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
}

答案 2 :(得分:4)

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

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

答案 3 :(得分:2)

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

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

答案 4 :(得分:1)

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

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

答案 5 :(得分:1)

如果要在代码后面指定单击处理程序,请确保它不在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
}

答案 6 :(得分:0)

检查并尝试删除其他输入元素上的“required”属性。 它适用于我的情况.. 我花了很长时间才发现它。

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

答案 7 :(得分:0)

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

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

删除生产代码。

答案 8 :(得分:0)

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

答案 9 :(得分:0)

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

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

答案 10 :(得分:0)

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

我已将按钮添加到<form>标记

,从而解决了该问题

旧代码

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

新代码

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

答案 11 :(得分:0)

请在线aspdotnetfiddle测试简单示例。

使用单个按钮创建示例程序&amp;标签控制,当点击按钮,触发按钮的点击事件,在该分配标签文本值。

答案 12 :(得分:0)

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

类似下面的代码:

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

答案 13 :(得分:0)

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

ASPX

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

背后的代码

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

我的个人答案是,您需要在Google中了解更多信息

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控件等....

答案 14 :(得分:0)

像这样的页面指令

<强> 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" %>

或者您不会在表单标记内调用 asp:Button 标记

 <form id="form1" runat="server">
    <div>

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

    </div>
    </form>

答案 15 :(得分:0)

尝试将Button放在表单标记

作为

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

答案 16 :(得分:0)

试试这个

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

这是页面指令吗?

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

答案 17 :(得分:0)

请你试试这个:

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

您没有提及按钮点击事件的事件处理程序。

希望它有所帮助。

答案 18 :(得分:0)

你的按钮应该是这样的

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