[英]ASP.Net User Control public function is not a member
我在一個帶有此控件的網站上擁有一個用戶控件。
Namespace MenuTreePanel
Public Class MenuTreePanel
Inherits System.Web.UI.UserControl
Public root As New MenuNode(0, 0, "root", "")
Public WithEvents Spany1 As HtmlGenericControl = New HtmlGenericControl("UL")
Public WithEvents Spany2 As HtmlGenericControl = New HtmlGenericControl("UL")
Public WithEvents Spany3 As HtmlGenericControl = New HtmlGenericControl("UL")
Public Function getRoot() As MenuNode
Return root
End Function
End Class
End Namespace
當我訪問getRoot函數時,出現錯誤
'getRoot' is not a member of 'ASP.MenuTreePanel'.
命名空間被錯誤地標記為ASP,我想知道它可能來自哪里。 在對象資源管理器中,我的控件在正確的名稱空間和ASP名稱空間下列出。
在頁面上引用使用
<%@ Register TagPrefix="MenuTreePanel" Src="~/MenuTreePanel.ascx" TagName="MenuTree" %>
<MenuTreePanel:MenuTree ID="menuTreeSelect" runat="server"></MenuTreePanel:MenuTree>
編輯2:
<%@ Control Language="vb" CodeBehind="~/MenuTreePanel.ascx.vb"className="MenuTreePanel" %>
並嘗試訪問它,使Dim root作為New MenuNode(0,0,“ root”,“”)
root = (menuTreeSelect).getRoot()
問題可能是您試圖靜態訪問屬性。 我的假設是,你不想靜態訪問它,因為它是一個控制。
我的建議是看一下如何使用MenuTreePanel對象。
您應該像這樣訪問它:
menuTreeSelect.getRoot();
而不是這樣:
MenuTreePanel.getRoot();
嘗試:
Public Shared Function getRoot() As MenuNode
Return root
End Function
我沒有將CodeFile和ASCX與網站正確鏈接。
我不得不將CodeBehind更改為CodeFile並添加一個繼承,現在一切正常。
謝謝你的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.