【问题标题】:ASP.NET: How do I implement my own AssociatedControlID-like functionality?ASP.NET:如何实现我自己的类似 AssociatedControlID 的功能?
【发布时间】:2010-12-15 21:47:07
【问题描述】:

我有两个用户控件 A 和 B,其中 B 取决于 A 在同一页面中的存在。

我正在尝试实现一些这样的功能:

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

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

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

【问题讨论】:

    标签: asp.net user-controls findcontrol


    【解决方案1】:

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

    试试 mineB.Page.FindControl("IdOfTheAControl"); //伪代码

    【讨论】:

    • 如果有人想知道,我用了Parent.FindControl,效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多