繁体   English   中英

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

[英]ASP.NET button not firing on click event

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

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

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

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

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

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

这是一个示例代码,您在按钮中错过了“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
}

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

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

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

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

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

你的按钮应该是这样的

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

你能试试这个:

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

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

希望能帮助到你。

试试这个

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

这是你的页面指​​令吗?

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

尝试将Button放在表单标记内

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

像这样的页面指令

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>

这是一个示例代码,您在按钮中错过了“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网站上学到很多知识

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

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

类似下面的代码:

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

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

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

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

我已经通过将按钮附加到<form>标签来解决了这个问题

旧代码

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

新代码

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

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

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

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

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

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

删除生产代码。

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

在这里阅读这个问题..同样的问题asp.net按钮OnClick事件没有解雇

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM