Asp.net 如何从单独的用户控件中查找页面上的用户控件并与之交互?
我有一个aspx页面,它有两个不同的用户控件。我想找到用户控件A,并能够从用户控件B设置属性等 我在想我可以这样做:Asp.net 如何从单独的用户控件中查找页面上的用户控件并与之交互?,asp.net,vb.net,Asp.net,Vb.net,我有一个aspx页面,它有两个不同的用户控件。我想找到用户控件A,并能够从用户控件B设置属性等 我在想我可以这样做: Dim CMFilters As Control = Me.Parent.FindControl("CMFilters") …但这不适用于设置属性和调用方法。我需要以某种方式获取用户控件,并将其声明为该用户控件类型。您不应该使控件A依赖于控件B 相反,从包含控件的页面读取和写入两个控件的属性 因此,将您想在控件A和控件B中设置的所有属性公开为public属性(读/写或只读),并
Dim CMFilters As Control = Me.Parent.FindControl("CMFilters")
…但这不适用于设置属性和调用方法。我需要以某种方式获取用户控件,并将其声明为该用户控件类型。您不应该使控件A依赖于控件B 相反,从包含控件的页面读取和写入两个控件的属性 因此,将您想在控件A和控件B中设置的所有属性公开为
public
属性(读/写或只读),并将它们连接起来,例如在页面的Page\u Load
事件中。有一篇文章解释了如何操作
我想指出,这不是一个好的设计。这就是所谓的“代码气味”。作为一般的经验法则,对象的设计应该使它们不知道其他对象,并且可以独立于其他对象运行
更好的方法是简单地让对象独立完成它们所做的事情,并让page类处理交互,因为每个对象都是页面的子元素
此设计在此处列为代码:
不适当的亲密关系
注意花太多时间在一起的课程,或者
以不适当的方式使用该接口。班级应该尽可能少地知道
可能是关于彼此的