ASP.NET 3.5 SP1 向 ScriptManager 对象添加了一个很棒的新 ScriptCombining 功能,如本视频所示。但是,他仅在同一页面上演示了如何将该功能与 ScriptManager 一起使用。我想在脚本管理器位于母版页上的站点上使用此功能,但不知道如何以编程方式将每个页面所需的脚本添加到管理器中。我发现这篇文章可以作为起点,但我并没有真正走得太远。谁能帮帮我?
谢谢,丹
试一试:
ScriptReference SRef = new ScriptReference();
SRef.Path = "~/Scripts/Script.js";
ScriptManager.GetCurrent(Page).CompositeScript.Scripts.Add(SRef);
这将获取当前的脚本管理器(即使它位于母版页上)并添加对 CompositeScript 属性的脚本引用。
您也可以使用ScriptManagerProxy在标记中执行此操作。
您可以将 ScriptManager 添加到母版页,例如
<asp:ScriptManager ID="ScriptManager" runat="server">
<CompositeScript>
<Scripts>
<asp:ScriptReference name="WebForms.js" assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<asp:ScriptReference name="MicrosoftAjax.js" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<asp:ScriptReference name="MicrosoftAjaxWebForms.js" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</Scripts>
</CompositeScript>
</asp:ScriptManager>
然后将 ScriptManagerProxy 添加到内容页面,例如
<asp:Content ID="HomeContent" ContentPlaceHolderID="PlaceHolder" runat="Server">
<asp:ScriptManagerProxy runat="server">
<CompositeScript>
<Scripts>
<asp:ScriptReference Path="~/yourscript.js" />
</Scripts>
</CompositeScript>
</asp:ScriptManagerProxy>