У вас есть несколько вариантов, но наилучшим способом было бы создать метод в пользовательском элементе управления, который обертывает текстовое свойство вашей метки и позволяет пользователям передавать значение, которое вы, в свою очередь, присваиваете свойству ,
Затем создайте другой метод на вашей главной странице, который принимает строковый параметр и передает это значение методу в вашем пользовательском элементе управления. Затем вы можете вызвать этот метод на своей главной странице из своей веб-формы.
Так что на ваш пользовательский элемент управления добавить метод, как это:
Public Sub SetDisplayText(ByVal displayText As String)
SomeLabel.Text = displayText
End Sub
затем добавить метод к вашей мастер-страницы, как это:
Public Sub SetDisplayText(ByVal displayText As String)
SomeUserControl.SetDisplayText(displayText)
End Sub
Теперь ваша веб-форма может вызвать SetDisplayText
метод на мастер-страницу, чтобы установить текст на этикетке пользовательского элемента управления:
Dim masterPage As SomeMasterPage = TryCast(Me.Master, SomeMasterPage)
If masterPage IsNot Nothing Then
masterPage.SetDisplayText("foo")
End If
Это может чувствуйте себя излишним, но этот вид абстракции необходим для уменьшения связи между вашими компонентами. Этот подход также дает вам большую гибкость в продвижении вперед, поскольку изменения могут быть сделаны без влияния на другие компоненты. Например, если вы переименуете свой элемент управления меткой, вам не нужно будет менять веб-форму, задающую ее текстовое значение, поскольку веб-форма не будет знать (или не заботится) о том, что называется меткой, только как установить ее отображаемое значение.