asp.net - 在某些页面上禁用 ScriptManager

标签 asp.net asp.net-ajax scriptmanager

我的母版页上有一个脚本管理器。我需要从一两个内容页面中删除 webresourse.axd,因为它会导致页面上的其他 javascript 出现问题

如何在这些页面上禁用脚本管理器?

ScriptManager 对象似乎没有任何看起来可以完成这项工作的属性

这可能吗?

最佳答案

将您的 移动到自定义控件,例如MyScriptManager.ascx - .ascx 文件中的唯一代码将是 ScriptManager 标记 - 然后您可以在自定义控件上设置 Visible 属性来控制是否呈现 ScriptManager。

<foo:MyScriptManager id="scriptManager" runat="server" Visible="false" />

您甚至可以向 MasterPage 添加一个属性,您可以在内容页面中使用它来显示/隐藏 ScriptManager:
// In your master page
public bool ShowScriptManager {get; set;}

// In your master page's Page_Load
private void Page_Load(object sender, EventArgs e) {
    ...
    scriptManager.Visible = ShowScriptManager;
    ...
}

由于您的大多数页面都需要 ScriptManager,因此将其默认为 true 可能是一个想法 - 我认为您可以在主页的 Page_Init 方法构造函数中执行此操作:
public SiteMaster() {
    ...
    ShowScriptManager = true;
    ...
}

// Or alternatively
private void Page_Init(object sender, EventArgs e) {
    ...
    ShowScriptManager = true;
    ...
}

然后,如果您在内容页面中设置了 MasterType:
<%@ MasterType VirtualPath="~/path/to/master/page" %>

你只需要在内容页面的 Page_Load 中做这样的事情:
Master.ShowScriptManager = false;

关于asp.net - 在某些页面上禁用 ScriptManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1057905/

相关文章:

css - 图片在 IE8 上不显示 - 与宽度属性有关?

javascript - 如何使用Razor显示模板将字符串转换为html字符串

c# - 在 ASP.Net ScriptMethod 中获取 session

asp.net - 获取ajax日历扩展器控件的选定日期

c# - 使用 C# 查找字符串?

asp.net - SqlCacheDependency 是否使用轮询或查询通知?

c# - ASP.NET C# - 一种实时通知方法

asp.net - 存在ScriptManagerProxy控件时,以编程方式禁用ScriptManager

asp.net-2.0 - 调用ScriptManager.RegisterStartupScript时, 'Type'参数有什么意义?

asp.net - 使用 Javascript 设置 ModalPopupExtender "Y"属性