Asp.net 如何从单独的用户控件中查找页面上的用户控件并与之交互?

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属性(读/写或只读),并

我有一个aspx页面,它有两个不同的用户控件。我想找到用户控件A,并能够从用户控件B设置属性等

我在想我可以这样做:

Dim CMFilters As Control = Me.Parent.FindControl("CMFilters")

…但这不适用于设置属性和调用方法。我需要以某种方式获取用户控件,并将其声明为该用户控件类型。

您不应该使控件A依赖于控件B

相反,从包含控件的页面读取和写入两个控件的属性

因此,将您想在控件A和控件B中设置的所有属性公开为
public
属性(读/写或只读),并将它们连接起来,例如在页面的
Page\u Load
事件中。

有一篇文章解释了如何操作

我想指出,这不是一个好的设计。这就是所谓的“代码气味”。作为一般的经验法则,对象的设计应该使它们不知道其他对象,并且可以独立于其他对象运行

更好的方法是简单地让对象独立完成它们所做的事情,并让page类处理交互,因为每个对象都是页面的子元素

此设计在此处列为代码:

不适当的亲密关系

注意花太多时间在一起的课程,或者 以不适当的方式使用该接口。班级应该尽可能少地知道 可能是关于彼此的