[英]Asp.Net does not contain a definition for buttonClick?
我試圖在Visual Studio asp.net上構建程序,但是每當嘗試單擊帶有OnClick事件的按鈕時,都會出現以下錯誤:
“ CS1061:'ASP.test_aspx'不包含'buttonClick'的定義,並且找不到擴展方法'buttonClick'接受類型為'ASP.test_aspx'的第一個參數(您是否缺少using指令或程序集引用? )”
這是我的HTML供參考:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="MRAApplication.test" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button id="b1" Text="Submit" runat="server" OnClick="buttonClick" />
<asp:TextBox id="txt1" runat="server" />
</div>
</form>
</body>
</html>
這是我的代碼背后:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace MRAApplication
{
public partial class test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
void buttonClick(Object sender, EventArgs e)
{
txt1.Text = "Text";
}
}
}
請保持解釋盡可能簡單,因為我是編碼新手。 感謝您提供的所有幫助。 :)
您需要將事件處理程序聲明為受保護的:
protected void buttonClick(Object sender, EventArgs e)
{
txt1.Text = "Text";
}
標記本質上是一個從后面的代碼繼承的類。 為了使成員可以訪問,需要對其進行保護或公開。
您必須使其至少受到保護:
protected void buttonClick(Object sender, EventArgs e)
{
txt1.Text = "Text";
}
C#中所有內容的默認訪問權限是“您可以為該成員聲明的最嚴格的訪問權限”,因此對於方法來說是private
的。
由於aspx是您的codebehind類( Inherits
)的子類,因此您要從aspx訪問的任何方法都必須聲明為protected
或public
(至少在C#中,VB.NET具有Handles
)。
讀:
您需要聲明您的事件處理程序,可以通過以下幾種方法進行操作:
protected void Page_Load(object sender, EventArgs e)
{
btnNote.Click += new EventHandler(btnNote_Click);
}
void btnAddNote_Click(object sender, EventArgs e)
{
// Do Stuff.
}
因此,通過在Page Load中聲明事件可以看到,可以像上面一樣使用原始void
。 否則,您需要在protected
聲明它。
protected void btnAddNote_Click(object sender, EventArgs e)
{
// Do Stuff.
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.