6 Stimmen

CS1061: Kompilierungsfehlermeldung

Ich habe einen LinkButton zu meiner Seite hinzugefügt und erhalte beim Debuggen einen Fehler, der besagt:

CS1061: "ASP.uilayer_test_aspx" enthält keine Definition für "lbl_Click" und es wurde keine Erweiterungsmethode "lbl_Click" gefunden, die ein erstes Argument vom Typ "ASP.uilayer_test_aspx" akzeptiert (fehlt Ihnen eine Verwendungsanweisung oder eine Assembly-Verweis?)

.aspx enthält :

LinkButton

Seitendirektive :

<%@ Seite Language="C#" MasterPageFile="~/UILayer/UI.Master" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="WebApp.UILayer.Test" Title="Untitled Page" %>

.cs enthält :

namespace WebApp.UILayer
{
    public partial class Test : System.Web.UI.Page
    {
        private void lbl_Click(object sender, EventArgs e)
        {
        } 
    }
}

9voto

Anders Abel Punkte 65873

Sie müssen lbl_Click geschützt machen und nicht privat.

Der Grund dafür ist, dass eine eigene Klasse, die wie ASP.uilayer_test_aspx genannt wird, aus der aspx-Quelle erstellt wird. Diese Klasse erbt von Ihrer Test Klasse. Private Methoden sind für Kindklassen nicht sichtbar, daher müssen sie geschützt werden.

1voto

Muhammad Akhtar Punkte 51432

Weil Sie den Klick-Handler lbl_Click als private modifiziert haben, müssen Sie ihn als Protected ODER Public festlegen. Da die aspx-Datei die cs-Klasse geerbt hat und auf private Elemente nicht zugegriffen werden kann.

Dies

 private void lbl_Click(object sender, EventArgs e)

sollte wie folgt aussehen...

 protected void lbl_Click(object sender, EventArgs e)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X