我有我的主网页上的脚本经理。 有迹象表明,我需要删除从webresourse.axd一个或2内容页,因为它会导致网页上与其他JavaScript问题
如何禁用这些网页上的脚本管理器?
使用ScriptManager对象犯规似乎没有任何属性,将看起来像他们会做的工作
这可能吗?
我有我的主网页上的脚本经理。 有迹象表明,我需要删除从webresourse.axd一个或2内容页,因为它会导致网页上与其他JavaScript问题
如何禁用这些网页上的脚本管理器?
使用ScriptManager对象犯规似乎没有任何属性,将看起来像他们会做的工作
这可能吗?
移动你的<asp:ScriptManager的/>为自定义控制如MyScriptManager.ascx -在.ascx文件的唯一代码将是ScriptManager的标签-那么你可以设置定制控件的Visible属性来控制的ScriptManager是否被渲染。
<foo:MyScriptManager id="scriptManager" runat="server" Visible="false" />
也许你可以一个属性,甚至添加到您的母版,你可以在你的内容页面用来显示/隐藏的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的,它可能是一个想法,使其默认为真 - 我认为你可以在你的母版页的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;
你也可以把脚本管理器进入的ContentPlaceHolder,
<asp:ContentPlaceHolder ID="cph_ScriptManager" runat="server"></asp:ContentPlaceHolder>
<asp:ScriptManager ID="ScriptManager" runat="server"></asp:ScriptManager>
</asp:ContentPlaceHolder>
和你想删除的网页上,有一个ASP:内容标记点它,它就会从网页中删除:
<asp:Content ID="content_SM_Overrride" ContentPlaceHolderID="cph_ScriptManager" runat="server">
<!-- ScriptManager Not Needed on this ASPX -->
</asp:Content>
对于任何人谁在这里结束了,但仍无法得到它与用户控件工作...
如果您使用的是.NET 4.0中,您可以使用新的AjaxFrameworkMode属性,并将其设置为禁用。
ScriptManager.AjaxFrameworkMode物业
希望可以帮助别人!
我会使用嵌套母版页。 有一个额外的内容占位符在脚本经理将您的标记一个据点主。 然后嵌套母版两个版本,其中一个脚本经理和一个没有。 而页面中使用适当的嵌套母版页。
我在下面的文字留下这样的评论是有意义的,但是这并不工作...
这个怎么样:
-put在webconfig的appsetting与URI的列表,你不希望有一个脚本管理器。
- 在主的page_init事件处理程序,拿到收集和测试,看看如果当前页面请求是在列表中。 如果是这样,请从主的控件集合使用ScriptManager。
即,在后面的母版页的代码:
Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
If DirectCast(Page, System.Web.UI.Page).AppRelativeVirtualPath = "~/Test.aspx" Then
Me.Controls.Remove(Me.FindControl("ScriptManager1"))
End If
End Sub
注:有很多的危险在你在做什么。 如果你的母版页有任何更新面板,或任何你在删除管理器的页面有他们,他们就会弹了出来。 你可以通过主控制收集和页面在主人的init循环并检查是否有更新面板为好。 虽然,我不知道,如果你发现他们,你会做什么。 删除它们可能会消除他们的任何内容。 在最好的情况,你可以:1)如果不更新面板被发现删除脚本管理器,或2)自定义错误。