ASP.NET按钮未在单击事件上触发
我是Asp.net的新手,我的问题可能不那么专业。 我在我的asp.net Web表单项目中使用Udemy.com的设计。 我将udemy
的页眉和页脚放在udemy
页中。 但是,当我向m web表单中的一个添加按钮时,click事件将不会触发。
protected void Button1_Click1(object sender, EventArgs e) { Page.Title = "Sample Text"; }
为了解决这个问题,我从我的页面中删除了所有脚本。 我还尝试将CausesValidation
设置为False。 但没有任何帮助。 你能帮我解决这个问题吗?
更新
我在我的代码中添加了OnClick事件。 但我仍然面临这个问题。
之前的所有答案都是正确的,除了您已经将OnClick事件“添加”到“.aspx”文件中。 我不知道它是你正在使用的模板中的某个东西,还是代码中的其他地方。 但我建议您检查以下内容(根据我遇到类似情况的经验):
- 您的“.aspx”页面中是否有任何Field Validators? 也许其中一个validation器被解雇,如果它们没有任何错误消息。
- 你有没有从其他地方复制过那个按钮? 如果是,则尝试添加新按钮并添加其单击事件,方法是双击设计模式中的按钮。 有时“OnClick”按钮的事件未在“.designer.cs”文件中注册。
您可以尝试的一些要点…您发布的代码(更新后)应该可以使用。
- 如果您打开视觉工作室的“设计”部分并双击按钮,这将引导您点击该按钮,如果没有一个事件,那么它将为您创建一个事件。
- 您的按钮必须位于表单标记内。
- 要测试事件,单击是触发,使用
Breakpoints
而不是标签或任何其他标记更改,但如果您需要它…您应该检查Title
组件是否具有runat="server"
属性并且它位于更新面板中。
这是一个示例代码,您错过了按钮中的“OnClick =”MyButton_Click“。
ASPX
code behind protected void **MyButton_Click**(object sender, EventArgs e) { // Put code here over there chuhu }
添加CausesValidation = "false"
按钮的CausesValidation = "false"
属性,如:
你缺少OnClick="Button1_Click"
。 你需要添加这样的事件
如果要在代码后面分配单击处理程序,请确保它不在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 }
你的按钮应该是这样的
你能试试这个:
您没有提到按钮单击事件的事件处理程序。
希望能帮助到你。
尝试将Button放在表单标记内
如
这是一个示例代码,您错过了按钮中的“OnClick =”MyButton_Click“。
ASPX
代码背后
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://quickstarts.asp.net/QuickStartv20/default.aspx并且可以从MSDN网站上学到很多知识
你可以了解更多的asp.net控件等….
试试这个
这是你的页面指令吗?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
请在yourpage.aspx.designer.cs文件中正确定义检查按钮。
类似下面的代码:
protected global::System.Web.UI.WebControls.Button Button1;
像这样的页面指令
Default.aspx的
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
HTML
以下代码应该在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标签
请在线测试aspdotnetfiddle中的简单示例。
使用单个按钮和标签控件创建示例程序,单击按钮,触发按钮的单击事件,在该分配标签文本值。
在我的情况下,它没有触发事件,因为我将按钮附加到母版页的主体,
标签位于标签中
我已经通过将按钮附加到
标签来解决了这个问题
旧代码
$('body').append($(".ButtonsDiv"));
新代码
$('#form1').append($(".ButtonsDiv"));
如果您有两个按钮和两个validation摘要,则必须为每个validation摘要,文本框和按钮添加ValidationGroup = "Group2"
。
而对于另一个添加: ValidationGroup="Group1"
,它应该工作。
如果问题是validation触发并且您的按钮不应触发validation,请考虑将CausesValidation =“false”添加到按钮的属性中。
Javascript可能会在您的页面上静默失败,导致处理被放弃,从而阻止点击事件被触发。 如果我怀疑这种情况发生了,我会在调试之前立即将其粘贴到脚本标记下:
window.onerror = function (message, filename, linenumber) { alert("JS error: " + message + " on line " + linenumber + " for " + filename); }
删除生产代码。
检查并尝试删除其他输入元素上的“required”属性。 它适用于我的情况..我花了很长时间才发现它。
在这里阅读这个问题..同样问题asp.net按钮OnClick事件没有解雇