2009-11-12 47 views
0

我有两个用户控件A和B,其中B取决于A在同一页面中的存在。ASP.NET:如何实现我自己的AssociatedControlID-like功能?

我想实现这样一些功能:

<mine:A ID="IdOfTheAControl" runat="server" /> 
<mine:B BelongsTo="IdOfTheAControl" runat="server" /> 

我能提取"IdOfTheAControl",但无法得到与该ID的实际控制权。我尝试在Page_Load中使用FindControl("IdOfTheAControl")代替B,但是这返回null,可能是因为函数在B.ascx中查找控件,而不是母版页中两个控件是同级的。

如果两个控件是页面中的同胞,我如何从用户控件访问具有给定ID的另一个用户控件?

回答

2

由于用户控件从System.Web.UI.WebControl继承,因此它们具有Page和Parent属性。如果存在嵌套控件,页面将为您提供页面的句柄,并为您的控件托管控件。

尝试mineB.Page.FindControl(“IdOfTheAControl”); //伪代码

+1

如果有人想知道,我使用了'Parent.FindControl',它工作正常。 – 2009-11-12 14:49:26