【问题标题】:ASP.NET User Control - Accessing the main Page object in AddedControlASP.NET 用户控件 - 访问 AdditionalControl 中的主页对象
【发布时间】:2009-07-29 21:20:46
【问题描述】:

如何在用户控件的 AdditionalControl 事件中访问主页对象?

我正在尝试运行代码行 ScriptManager oSCM = ScriptManager.GetCurrent(this.Page); 在那种情况下,但它返回 null,即使父页面上有一个脚本管理器。在 WUC 的 OnInit 事件中,同一行代码返回 scriptmanger 对象,但不在 addcontrol 中。我是否在该事件中错误地使用了页面对象 - 我需要以不同的方式访问它吗?

干杯

MH

【问题讨论】:

    标签: asp.net user-controls


    【解决方案1】:

    您需要查看 ASP.NET 页面生命周期,请参阅关于 SO 的这篇文章以及我对此的回答:

    Where should stuff be done in an ASP.NET page

    【讨论】:

    • 谢谢你,但我想我需要更详细地了解早期部分。我已经做了很多调试(已经覆盖了我在用户控件中可以看到的每个事件,所以我可以看到什么时候触发)并且我可以通过 AddParsedSubObject 和 AdditionalControl 阶段的流程 - 它似乎可以通过它们更新面板,因为它加载了我在面板之后插入的控件,但是在引发错误时它会触发卸载事件,我需要知道“没有脚本管理器存在”错误发生在哪里,以及页面是否由那个实例化点.....
    • ....所以我可以使用 ScriptManager.GetCurrent(Page) 方法查看是否有 SCM 实例化,如果没有则添加它。问题是在 AdditionalControl 阶段(正如我想我提到的)页面仍然是空的,所以我需要在那之后做。我怀疑我可能处于先有鸡还是先有蛋的场景中,因为在引发“无脚本管理器”错误之后,该页面可能才可用,因此我无法测试脚本管理器的存在和在错误开始之前插入一个。或者有没有使用 SCM GetCurrent 方法(或类似方法)的方法......
    • ....从用户控件中检查在此早期阶段是否存在脚本管理器?干杯 MH
    • 那是有用的信息,但后来我发现无法做到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多