c# - 在 aspx 上获取 ascx

标签 c# asp.net user-controls

我有一个 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/

相关文章:

c# - 如何保存拖动项目的位置

wpf - 如何实现代码隐藏元素的数据绑定(bind)?

c# - 如何在设计时进行调试?

c# - 如何在 C# 中创建横幅面板?

c# - 为大字符串识别您自己的字符串对象?

c# - 使用SQL返回JSON字符串

c# - 如何检查字节数组是否包含另一个数组

c# - 表单必须可转换为 System.Web.UI.Page

asp.net - 将脚本管理器引入动态呈现的页面

c# - 更改在 .Net 中序列化的类的名称?