+5 votos
42 visitas

Em versões anteriores do WES o script era adicionado direto na Default.master da seguinte forma:


<asp:ScriptManager runat="server" ID="mainScriptManager" OnAsyncPostBackError="ScriptManager_AsyncPostBackError" EnablePartialRendering="true" ScriptMode="Release" EnablePageMethods="true">
  <Scripts>
    <asp:ScriptReference Path="~/bootstrap/js/bootstrap.js" />
    <asp:ScriptReference Path="~/dependencies/bootmetro-1.0.0/js/bootmetro-pivot.js" />
    <asp:ScriptReference Path="~/javascripts/InterfaceUtils.js" />
  </Scripts>
</asp:ScriptManager>

A partir da 14.1 o WES possui camadas na Default.master e foi criado o componente WesManager que já adiciona os scripts, preciso acrescentar também bootmetro e InterfaceUtils.
Se manter o WesManager e adicionar na Default.master customizada os script da forma acima ocorre uma mensagem indicando que a página pode ter apenas um ScriptManager.

por (64 pontos)
editado por | 42 visitas

2 Respostas

+2 votos
Melhor resposta

Devido a dificuldade em adicionar scripts na versão 14.1, estamos voltando o ScriptManager para a MasterPage apartir na release 14.1.6.9 do WES.

Dessa forma para registrar um javascript no WES é necessário que a MasterPage seja customizada, para customizar a MasterPage veja a documentação. Com a Master Page customizada, basta adicionar um ScriptReference no WesManager conforme mostrado abaixo:

<wes:WesManager runat="server">
    <Scripts>
        <asp:ScriptReference Path="~/js/angular.min.js" />
    </Scripts>
</wes:WesManager>

 

 

por (470 pontos)
editado por
+1 voto

Na 14.1 o ScriptManager saiu da master e foi para um user control que é utilizado pela master, o WesManager.ascx.

Percebemos que isso acabou dificultado a adição de scripts pelos sistemas e pretendemos melhorar (ver SMS 786347).

Por enquanto as formas disponíveis são:

  • Especializar o WesManager.ascx, colocar seus scripts na especialização e utilizar sua especialização em vez do WesManager na sua nova master.
  • Ou, via código da sua master, ou apenas da página que queres adicionar scripts (para não onerar todas as páginas), implementar algo semelhante ao seguinte (ainda não testado):
var scriptManager = ScriptManager.GetCurrent(Page);
if (scriptManager != null)
    scriptManager.Scripts.Add(
        new ScriptReference()
        {
            Path = "~/javascripts/InterfaceUtils.js"
        });

 

 

por (187 pontos)
editado por
A segunda alternativa, parece ser melhor pois não precisa fazer merge de alterações no caso de modificações no arquivo WesManager.ascx

Perguntas relacionadas

+6 votos
2 respostas
perguntado 9 Mai, 2014 por Camila (288 pontos) | 51 visitas
0 votos
1 resposta
+4 votos
1 resposta
perguntado 9 Mai, 2014 por Camila (288 pontos) | 42 visitas
0 votos
1 resposta
perguntado 4 Set, 2019 por david.bernardino (11 pontos) | 62 visitas
Melhores Jul 2020
  1. nira

    7 Pontos

200 pontos
Melhores 2020 Jun 29 - Jul 05
  1. nira

    7 Pontos

436 perguntas
484 respostas
350 comentários
470 usuários