簡體   English   中英

Asp.Net不包含buttonClick的定義嗎?

[英]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訪問的任何方法都必須聲明為protectedpublic (至少在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM