2011-04-22 66 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

相關問題