3

我在母版页中使用 asp.net 脚本管理器来添加 js 文件。在其中一个子页面中,我不希望排除特定的 js 文件。在 asp.net 中可以吗?

例如,我的母版页中的代码

    <asp:ScriptManager runat="server" EnablePageMethods="true"  EnablePartialRendering="true" ID="id" OnResolveScriptReference="sm_ResolveScriptReference">
    <Scripts>
        <asp:ScriptReference Path="~/scripts/jquery-1.4.2.min.js" /> 
         <asp:ScriptReference Path="~/scripts/jquery.bgiframe.min.js" />
        <asp:ScriptReference Path="~/scripts/tax.js" />
        <asp:ScriptReference Path="~/scripts/old.js" />
        <asp:ScriptReference Path="~/scripts/menu.js" />
    </Scripts>
</asp:ScriptManager>

我喜欢从一个子页面中排除 old.js。希望这会有所帮助

4

2 回答 2

4

扭曲你的ScriptManager内心PlaceHolder,当你确实需要改变它时,简单地把它PlaceHolder放在孩子身上。例如:

 <asp:ContentPlaceHolder id="ScrMang" runat="server">        
     <asp:ScriptManager runat="server" EnablePageMethods="true"  EnablePartialRendering="true" ID="id" OnResolveScriptReference="sm_ResolveScriptReference">
    <Scripts>
        <asp:ScriptReference Path="~/scripts/jquery-1.4.2.min.js" /> 
         <asp:ScriptReference Path="~/scripts/jquery.bgiframe.min.js" />
        <asp:ScriptReference Path="~/scripts/tax.js" />
        <asp:ScriptReference Path="~/scripts/old.js" />
        <asp:ScriptReference Path="~/scripts/menu.js" />
    </Scripts>
     </asp:ScriptManager>       
   </asp:ContentPlaceHolder>

如果包含此行,则在子节点上,它将删除 ScriptManager。当然,您可以使用不同的脚本再次包含它来加载。

<asp:Content ID="Content3" ContentPlaceHolderID="ScrMang" Runat="Server">
</asp:Content>

第二种解决方案是以相同的方式制作嵌套母版页,将 ScriptManager 包含在 PlaceHolder 中,将第一个母版页作为父级制作 MasterPage,并更改它将包含的脚本。然后选择哪些页面获取母版页,哪些获取具有不同脚本的嵌套母版页。

于 2012-07-03T13:52:58.767 回答
0

母版页可以在标签中包含默认内容。当子页面使用母版页并且不包含对具有默认内容的内容占位符的引用时,默认内容将在其位置呈现。

在这种情况下,我要做的是在母版页中为我的脚本创建一个内容占位符。然后,在您不想让脚本显示的页面中,使用您脚本创建一个指向 的内容项。这允许您“覆盖”该特定页面上使用的脚本。

于 2012-07-03T13:44:58.697 回答