簡體   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