我有一个带有标签的用户控件.我有一个主页面,我已经删除了用户控件.我有其他.aspx页面使用具有用户控件的母版页.
从.aspx页面更改用户控件上该标签文本的最佳方法是什么?
您有几个选项,但最好的方法是在用户控件上创建一个方法,该方法包装标签的text属性,并允许用户传入一个值,该值又分配给标签的Text属性.
然后在您的母版页上创建另一个接受字符串参数的方法,并将该值传递给用户控件上的方法.然后,您可以从Web表单在主页面上调用此方法.
因此,在您的用户控件上添加如下方法:
Public Sub SetDisplayText(ByVal displayText As String)
SomeLabel.Text = displayText
End Sub
Run Code Online (Sandbox Code Playgroud)
然后像这样在你的母版页中添加一个方法:
Public Sub SetDisplayText(ByVal displayText As String)
SomeUserControl.SetDisplayText(displayText)
End Sub
Run Code Online (Sandbox Code Playgroud)
现在,您的Web表单可以调用SetDisplayText母版页上的方法来设置用户控件标签上的文本:
Dim masterPage As SomeMasterPage = TryCast(Me.Master, SomeMasterPage)
If masterPage IsNot Nothing Then
masterPage.SetDisplayText("foo")
End If
Run Code Online (Sandbox Code Playgroud)
这可能感觉有点过分,但这种抽象是减少组件之间耦合所必需的.这种方法还为您提供了很大的灵活性,因为可以在不影响其他组件的情况下进行更改.例如,如果重命名标签控件,则无需更改设置其文本值的Web表单,因为Web表单不会知道(或关心)标签的名称,只知道如何设置其显示值.
| 归档时间: |
|
| 查看次数: |
1637 次 |
| 最近记录: |