2011-07-17 190 views
5

我已經添加一個LinkBut​​ton到我的網頁和調試時出現錯誤說:CS1061:編譯錯誤信息

CS1061:「ASP.uilayer_test_aspx」不包含定義「lbl_Click」,沒有擴展方法「 lbl_Click」接受型的第一參數 'ASP.uilayer_test_aspx' 可以找到(是否缺少using指令或程序集引用?)

的.aspx包含:

<asp:LinkButton ID="lbl" runat="server" OnClick="lbl_Click">LinkButton</asp:LinkButton> 

頁diretive:

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

的.cs包含:

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

回答

9

你必須做lbl_Click保護,而不是私人的。

原因是自己的類,名爲ASP.uilayer_test_aspx是從aspx源創建的。此類Test類繼承。私有方法對於子類不可見,所以它必須受到保護。

+0

這是一個救星^^。它也發生,如果你有「內部」...這應該被視爲一個錯誤,編譯罰款,但與發佈的版本提出錯誤....不應該編譯器警告這種可見性錯誤? – VSP

1

因爲你已經設置單擊處理lbl_Click改性劑private,你必須將其設置爲Protected OR Public。由於aspx文件繼承了cs類,並且不能訪問私有成員。

​​

應該是這樣..

protected void lbl_Click(object sender, EventArgs e)