by Felipe Oriani
22. July 2009 17:15
Olá Pessoal, como vai ? Como todos sabemos, para trabalhar com os componentes do ASP.Net AJAX e Ajax Control Toolkit, devemos adicionar em nosso WebForm a instância de um ScriptManager para que ele nos permita ter controle maior das configurações do ASP.Net Ajax. Neste post irei demonstrar rápidamente alguns detalhes que as vezes passamos despercebidos aos implementar aplicações que utilizam o ASP.Net Ajax e desejamos ter maior controle em nossa aplicação.
Como recuperar a instância do ScriptManager.
Colocar o ScriptManager em uma MasterPage, é uma boa prática que muitos vem aderindo. Quando estamos em um WebForms e precisamos acessar o ScriptManager, poderiamos utilizar a instância e um ScriptManagerProxy que apontaria para nosso ScriptManager me uma MasterPage (por exemplo). Outra saída, seria utilizar a própria classe do ScriptManager e o método estático GetCurrent passando nossa página como argumento para que este método nos retorne o ScriptManager corrente e como por regra sempre temos apenas um, teremos a instância deste em mãos para facilitar a manipulação, veja o exemplo abaixo e como setar o foco em um controle:
//setando o foco em um controle chamado 'txtNome'
ScriptManager.GetCurrent(Page).SetFocus(txtNome);
Outra problema que as vezes passamos é quando precisamos testar nossas aplicações sem os postbacks internos nos UpdatePanel, você resolveria isso de forma fácil removendo o UpdatePanel, mas existe uma forma correta para desativar o ASP.Net Ajax que seria diretamente no ScriptManager alterar a propriedade EnablePartialRendering setando-a para "false". Essa propriedade ativa/desativa a renderização de forma "assíncrona" efetuada pelo ASP.Net AJAX. Desativando essa propriedade todos os UpdatePanelds da aplicação passarão a não fazer Postback assíncrono. Por default essa propriedade vem ativa; em versões anteriores do ASP.Net Ajax (conhecido como Atlas Framework), essa propriedade vinha desativada. Veja o exemplo abaixo:
<%-- desativando chamadas assíncronas --%>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="false"></asp:ScriptManager>
Bem pessoal, foi um post rápido sobre três dicas sobre o ScriptManager.
Espero que tenham gostado
Um abraço
Att,