在asp.net子页面中排除母版页面js文件

时间:2012-07-03 13:28:19

标签: javascript jquery asp.net

我在母版页中使用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.希望这有帮助

2 个答案:

答案 0 :(得分:2)

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>

第二个解决方案是以相同的方式创建嵌套母版页,在PlaceHolder中包含ScriptManager,使用第一个作为父级创建MasterPage,并更改它将包含的脚本。然后选择获取母版页的页面,以及使用不同脚本获得嵌套母版页的内容。

答案 1 :(得分:0)

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

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