2010-01-31 71 views

回答

5

您有幾個選擇,但最好的方法是在用戶控件上創建一個包裝標籤文本屬性的方法,並允許用戶傳入一個值,然後您將該值傳遞給標籤的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表單不會知道(或關心)該標籤的調用方式,而只需設置其顯示值。

相關問題