我正在尝试创建一个控件 ( MyControl
),它对其所在页面上的其他控件执行操作。它有一个属性:
public property System.Web.UI.Control SomeOtherControl;
我希望能够从使用该控件的 ASPX 页面设置此属性。现在,我能做到的唯一方法是在Page_Load
代码隐藏中:
MyControl.SomeOtherControl = TheOtherControl;
不必在使用的每个页面的代码隐藏上MyControl
执行此操作,我只想在 ASPX 页面上执行此操作:
<xyz:MyControl SomeOtherControl="TheOtherControlsID" />
为了做到这一点,我尝试在初始化Page.FindControl()
时使用 ID 字符串上的方法来查找引用的控件MyControl
,但它只搜索页面的顶级控件。我可以编写自己的 recursive FindControl()
,但我认为必须有更好的方法来做到这一点,而且我担心这样的性能。有任何想法吗?