我有一个带有标签的用户控件。我有一个主页面,我已经删除了用户控件。我有其他.aspx页面使用具有用户控件的母版页。
从.aspx页面更改用户控件上该标签文本的最佳方法是什么?
答案 0 :(得分:5)
您有几个选项,但最好的方法是在用户控件上创建一个包装标签的text属性的方法,并允许用户传入一个值,而该值又分配给标签{{1属性。
然后在您的母版页上创建另一个接受字符串参数的方法,并将该值传递给用户控件上的方法。然后,您可以通过网络表单在主页面上调用此方法。
因此,在您的用户控件上添加如下方法:
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
方法来设置用户控件标签上的文字:
SetDisplayText
这可能感觉有些过分,但这种抽象对于减少组件之间的耦合是必要的。这种方法还为您提供了很大的灵活性,因为可以在不影响其他组件的情况下进行更改。例如,如果重命名标签控件,则无需更改设置其文本值的Web表单,因为Web表单不会知道(或关心)标签的名称,只知道如何设置其显示值。