Использование ScriptCombining через ScriptManager на главной странице - PullRequest
1 голос
/ 06 ноября 2008

ASP.NET 3.5 SP1 добавляет замечательную новую функцию ScriptCombining к объекту ScriptManager, как показано на этом видео . Однако он только демонстрирует, как использовать эту функцию с ScriptManager на той же странице. Я хотел бы использовать эту функцию на сайте, где менеджер сценариев находится на главной странице, но не могу понять, как программно добавить сценарии, которые мне нужны для каждой страницы, в менеджер. Я нашел этот пост для использования в качестве отправной точки, но на самом деле я не очень далеко ухожу. Кто-нибудь может дать мне руку помощи?

Спасибо, Дэн

Ответы [ 2 ]

2 голосов
/ 06 ноября 2008

Дайте этому шанс:

    ScriptReference SRef = new ScriptReference();
    SRef.Path = "~/Scripts/Script.js";


    ScriptManager.GetCurrent(Page).CompositeScript.Scripts.Add(SRef);

Это позволит получить текущий скрипт-менеджер (даже если он находится на главной странице) и добавить ссылку на скрипт в свойствах CompositeScript.

1 голос
/ 07 января 2011

Вы также можете сделать это в разметке, используя 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>
...