vb.net - 来自同一母版页的共享功能的母版页中的访问控制

标签 vb.net master-pages

我正在从内容页调用母版页的共享函数。在该共享函数中,我想访问母版页中的控件,但我不知道如何访问。

ma​​in.master

<asp:Literal ID="ltCurrency" runat="server" />

ma​​in.master.vb

Partial Public Class main
Inherits System.Web.UI.MasterPage

Public Property CurrencyText() As String
    Get
        Return ltCurrency.Text
    End Get
    Set(ByVal value As String)
        If value <> "" Then
            ltCurrency.Text = value
        End If
    End Set
End Property

Public Shared Function DoSomething() As String  
    ltCurrency.Text="SOME TEXT" 'throws error: Cannot refer to an instance member of a class from within a shared method or shared member initializer without an explicit instance of the class.    

    CurrencyText="SOME TEXT" 'this property isn't found at all

'我还尝试实例化当前母版页的一个新类: Ctype(main,Masterpage).CurrencyText

End Function


End Class

从 page1.aspx 我调用:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    main.DoSomething()
End Sub

我还能做什么?

最佳答案

对于它的值(value)(我不知道你为什么需要将其共享),你可以使用HttpContext来获取对你的页面的引用,并从那里到你的主控:

Public Shared Function DoSomething() As String
    Dim myPage = TryCast(HttpContext.Current.Handler, Page)
    If myPage IsNot Nothing Then
        Dim myMaster As main = TryCast(myPage.Master, main)
        If myMaster IsNot Nothing Then
            myMaster.ltCurrency.Text = "SOME TEXT" 
            myMaster.CurrencyText = "SOME TEXT"
        End If
    End If
End Function

关于vb.net - 来自同一母版页的共享功能的母版页中的访问控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15087928/

相关文章:

c# - ASP.net母版页/内容页简单设计问题

asp.net - 如何通过后面的代码不显示任何内容

vb.net - 如何在对象的构造函数完成后立即触发事件?

mysql - 如何在每次读取时从行中添加值

vb.net - 缩放图像以进行打印

asp.net - 信箱不可用。服务器响应是 : Access denied - Invalid HELO name (See RFC2821 4. 1.1.1)

c# - 为什么我们使用@Master类型?

vb.net - 循环遍历datagridview

html - 呈现的 HTML 中的代码来源不明

javascript - 如何使用 javascript 检索隐藏字段值?