Usando ScriptCombining através de um ScriptManager em uma página mestre
-
06-07-2019 - |
Pergunta
ASP.NET 3.5 SP1 adiciona uma grande novidade ScriptCombining ao objeto ScriptManager como demonstrado em este vídeo . No entanto, ele só demonstra como usar o recurso com o ScriptManager na mesma página. Eu gostaria de usar esse recurso em um local onde o scriptmanager está na página mestre, mas não consigo descobrir como adicionar os scripts que eu preciso para cada página programaticamente para o gerente. Eu encontrei este post para uso como um ponto de partida, mas eu realmente não estou ficando muito longe. Alguém pode me dar uma mão amiga?
Obrigado, Dan
Solução
Dê este um tiro:
ScriptReference SRef = new ScriptReference();
SRef.Path = "~/Scripts/Script.js";
ScriptManager.GetCurrent(Page).CompositeScript.Scripts.Add(SRef);
Isso vai tirar o scriptmanager atual (mesmo que seja em uma página master) e adicionar uma referência de script para as propriedades CompositeScript.
Outras dicas
Você também pode fazer isso na marcação usando ScriptManagerProxy .
Você pode adicionar o ScriptManager para a página mestra por exemplo.
<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>
E, em seguida, adicione o ScriptManagerProxy para a página de conteúdo por exemplo.
<asp:Content ID="HomeContent" ContentPlaceHolderID="PlaceHolder" runat="Server">
<asp:ScriptManagerProxy runat="server">
<CompositeScript>
<Scripts>
<asp:ScriptReference Path="~/yourscript.js" />
</Scripts>
</CompositeScript>
</asp:ScriptManagerProxy>