我正在從內容頁面調用一個主頁面的共享功能。在那個共享函數中我想訪問masterpage中的一個控件,但我不知道如何。來自同一主頁面的共享功能的主頁面的訪問控制
main.master
<asp:Literal ID="ltCurrency" runat="server" />
main.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(主,母版) .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
我還能做什麼?
事件,我想我需要做funtion共享,以便能夠從我的常規內容頁面調用它呢?如果我刪除「共享」部分,則該功能在內容頁面上不可用。 但是你的解決方案有效:) – Flo 2013-02-26 12:11:02
@Floran:如果你想從內容頁面調用方法,你需要將頁面的Master屬性轉換爲你的'MasterPage'的實際類型。看看我的代碼,因爲我已經做到了。 – 2013-02-26 12:13:26
啊我明白了。但是當我將它聲明爲共享方法時,我可以直接通過masterpage類名訪問方法,而不必先將其轉換爲masterpage。這裏有最佳做法嗎? – Flo 2013-02-26 12:16:33