2011-04-22 67 views
2

有没有简单的方法来确定页面上是否存在需要scriptmanager的控件?我在页面init中为每个页面添加了一个脚本管理器(这很好用),但似乎有更好的办法,而不是强制每个页面都有脚本管理器。也许四分之一的页面有更新面板,或者某种扩展器。或者它不是一个额外的负载,只是不担心呢?如何确定在页面上是否需要Asp.net Scriptmanager

+0

如果使用updatePanel,则必须使用 – Maidot 2011-04-22 03:57:52

回答

3

继承你的优势。创建某种ScriptManagerPageBase类,其PageInit方法调用新的ScriptManager。对于需要使用ScriptManager的每个页面(例如使用UpdatePanel控件),只需从ScriptManagerPageBase继承该页面即可,只有在需要时才能获得该功能,而不必复制代码。

+0

谢谢!真棒。 – Daniel 2011-04-22 04:14:30

+0

如果我有一个从您的“ScriptManagerPageBase”和一个也需要ScriptManager的Web用户控件(.ascx)继承的页面,当我在您的Page.aspx上托管myControl.ascx时它们不会相互碰撞,除非您使用一个代理? – 2011-04-22 14:13:08

1

在您的母版页(或根据您的方法的基础页,我建议母版页..)只需添加一个scriptmanager。除非需要,否则它不会在运行时影响页面。然后将scriptmanagerproxy添加到需要脚本管理器的每个页面或控件。在运行时,代理将查找基本或主管理器并注册任何以前未注册的脚本。请参阅MSDN SCRIPTMANAGERPROXY discription

相关问题