我有一个 UserControl,它由显示在 aspx 页面上的父 UserControl 和子 UserControl 组成。我需要从子控件中获取 Parent UserControls 的实例。 Parent 有一组嵌套的 .net 控件,在这些嵌套控件中显示了子 UserControl,所以如果我从子 UserControl 使用它
MyControl _myControl = (MyControl)this.Parent.Parent.Parent.Parent.FindControl("MyControl");
其中 (this) = 子控件和 (Parent.Parent.Parent.Parent) 带我回到树上真正的父级。
这会让我到达那里,但似乎还有更好的方法。有什么建议吗?
最佳答案
一个 ascx
不应该知道关于它的父类的任何信息:这表明它与其他类的耦合过于紧密。它们也可能是一个类。
另一种方法是遵循 law of Demeter : 从 MyControl
中找出 this
(您的用户控件)需要什么,将其设为属性,并让您的 aspx 提供它而不是请求它。
关于c# - 在 aspx 上获取 ascx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7115847/