4
我有一個帶有標籤的用戶控件。我有一個主頁,我已經放棄了用戶控制。我有其他.aspx頁面使用具有用戶控件的主頁面。在用戶控件中更改標籤文本的最佳方法是什麼?
從.aspx頁面更改用戶控件上該標籤文本的最佳方式是什麼?
我有一個帶有標籤的用戶控件。我有一個主頁,我已經放棄了用戶控制。我有其他.aspx頁面使用具有用戶控件的主頁面。在用戶控件中更改標籤文本的最佳方法是什麼?
從.aspx頁面更改用戶控件上該標籤文本的最佳方式是什麼?
您有幾個選擇,但最好的方法是在用戶控件上創建一個包裝標籤文本屬性的方法,並允許用戶傳入一個值,然後您將該值傳遞給標籤的Text
屬性。
然後在您的母版頁上創建另一個接受字符串參數的方法,並將該值傳遞給用戶控件上的方法。然後,您可以在網頁表單的主頁上調用此方法。
所以你的用戶控件添加一個方法是這樣的:
Public Sub SetDisplayText(ByVal displayText As String)
SomeLabel.Text = displayText
End Sub
然後添加一個方法,你的母版頁是這樣的:
Public Sub SetDisplayText(ByVal displayText As String)
SomeUserControl.SetDisplayText(displayText)
End Sub
現在你的web表單可以調用SetDisplayText
方法上主頁設置用戶控件標籤上的文本:
Dim masterPage As SomeMasterPage = TryCast(Me.Master, SomeMasterPage)
If masterPage IsNot Nothing Then
masterPage.SetDisplayText("foo")
End If
這可能感覺過度殺傷,但這種抽象對於減少組件之間的耦合是必要的。這種方法也爲您提供了很大的靈活性,因爲可以在不影響其他組件的情況下進行更改。例如,如果您重命名標籤控件,則不需要更改設置其文本值的Web表單,因爲Web表單不會知道(或關心)該標籤的調用方式,而只需設置其顯示值。