簡體   English   中英

ASP.Net用戶控件公共功能不是成員

[英]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.

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