0

これを含む Web サイトにユーザー コントロールがあります。

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 As New MenuNode(0, 0, "root", "")

    root = (menuTreeSelect).getRoot()
4

3 に答える 3

1

問題は、プロパティに静的にアクセスしようとしている可能性があります。コントロールなので、静的にアクセスしたくないというのが私の仮定です。

私の提案は、MenuTreePanel オブジェクトをどのように使用しているかを確認することです。

次のようにアクセスする必要があります。

menuTreeSelect.getRoot();

このようではありません

MenuTreePanel.getRoot();
于 2013-08-29T03:31:38.217 に答える
0

試す:

Public Shared Function getRoot() As MenuNode
    Return root
End Function
于 2013-08-29T03:18:01.827 に答える
0

CodeFile と ASCX を Web サイトに正しくリンクしていませんでした。

CodeBehind を CodeFile に変更して継承を追加する必要がありましたが、今ではすべてが正しく機能しています。

ご協力いただきありがとうございます。

于 2013-08-29T15:50:54.900 に答える