以编程方式阻止ASP .NET AJAX脚本呈现

时间:2009-03-11 05:28:39

标签: asp.net ajax scriptmanager

有没有人知道我可以阻止所有.NET AJAX脚本渲染的方法,即使页面上存在ScriptManager也是如此?

如果您尝试设置Visible属性,则会覆盖并禁用ScriptManager的Visible属性,以便您收到NotImplementedException。

我想这样做的原因是,当我们不需要时,我不想在我的页面上放置这些大量的javascript。 ScriptManager需要包含在母版页中以确保只添加一个ScriptManager,但是必须拥有相同母版页的两个版本是愚蠢的 - 一个启用了ajax而另一个没有。

编辑:我实际上正在使用Telerik的RadScriptManager和RadAjax,以防有人知道使用这些类的方法。

4 个答案:

答案 0 :(得分:2)

查看Bertrand LeRoy的“将ScriptManager与其他框架结合使用”

http://weblogs.asp.net/bleroy/archive/2008/07/07/using-scriptmanager-with-other-frameworks.aspx

包含一个从ScriptManager继承的控件,它取消了一些内置的脚本添加,并允许你用你喜欢的任何框架替换它。

答案 1 :(得分:1)

不要将其用作母版页中的实际控件,而是创建它的实例并在需要时将其添加到页面中;甚至可能在你的母版页上有一个属性来控制它是否被包含在内。

答案 2 :(得分:0)

您可以检查的选项可能是使用ScriptManager的CompositeScript块。这样,您可以将它们全部合并到一个浏览器可缓存的脚本资源调用中。您也可以将任何其他常用脚本添加到此块中。

关于它有一个screencast,之前我已经使用过它,它看起来效果很好。

答案 3 :(得分:-1)

我已经解决了类似的问题 - 即:通过将其包含在< asp:PlaceHolder> 标记中,以编程方式在Ajax Control Toolkit中输入或排除HoverMenuExtender,该标记允许设置其可见属性。如果占位符不可见,则不会将其呈现到页面上 - 包括所有子控件。没有尝试使用ScriptManager,但它也可以在这里工作。

干杯,奥利弗