Ajax - UpdatePanel
Autor: Anderson Silva Garcia | Publicado: 2011-10-07T07:02:00-07:00

O controle UpdatePanel do ASP.NET AJAX permite que você crie  aplicações web com uma interface mais interativa e amigável com o usuário.  Usando este controle você pode atualizar partes selecionadas de uma página ao  invés de atualizar toda a página web usando um postback.(efetuar uma  atualização parcial da página - partial-page update).  Você pode usar um ou mais controles UpdatePanel em uma página que já  contenha o controle ScriptManager e eles podem participar de atualizações  parciais da página sem ter que criar código de script do lado do cliente O controle UpdatePanel do ASP.NET AJAX é um controle de servidor e  ao usá-lo o comportamento da página é independente do Navegador usado e pode  reduzir potencialmente a quantidade de dados que são transferidos entre o  cliente e o servidor. Este controle atua definindo regiões específicas de uma página que podem  ser atualizadas sem dar um refresh na página inteira. Este processo é coordenado  pelo controle de servidor ScriptManager e pela classe  PageRequestManager no lado do cliente. Quando uma atualização parcial  esta ativa, os controles podem enviar posts de forma assíncrona para o servidor.  Não há limite no número de controles UpdatePanel que você pode usar em  uma página e você pode usar mais de um controle para atualizar regiões  diferentes da página de forma independente. Um postback assíncrono se comporta como um postback normal quanto ao ciclo  de vida da página, mas no postback assíncrono a atualização da página está  limitada a regiões da página que estão no interior do controle  UpdatePanel e que estão marcadas para serem atualizadas. O servidor envia  o HTML somente para os elementos afetados do navegador. No Navegador , a classe  PageRequestManager efetua uma manipulação usando DOM -  Documento Object Model, para substituir o HTML existente com a  atualização. Para que o UpdatePanel funcione, ele precisa que o controle  ScriptManager esteja na página e que a atualização parcial das  páginas esteja habilitada pelo valor da propriedade  EnablePartialRendering do controle ScriptManager como  True. Qualquer postback efetuado dentro de um controle UpdatePanel causa  um postback assíncrono e atualiza o conteúdo do painel, mas você pode também  configurar outros controles na página para atualizar o controle UpdatePanel  através da definição de um gatilho (trigger) para o controle. (Um gatilho (trigger) é uma vinculação que especifica qual  controle e evento irá causar a atualização do UpdatePanel em um  postback.) Um gatilho é definido pela utilização do elemento   &lt;asp:AsyncPostBackTrigger ControlID="ControleID" /&gt; no  interior do elemento &lt;Triggers&gt; do controle UpdatePanel  sendo que sua utilização é opcional. Vejamos a seguir o controle UpdatePanel é atualizado : - Se a propriedade UpdateMode for definida como Always, o  conteúdo do controle é atualizado a cada postback originado de qualquer lugar da  página incluindo postback assíncrono a partir dos controles que estão no  interior do controle e postbacks dos demais controles da página.(Always é o valor padrão da propriedade  UpdateMode) - Se a propriedade UpdateMode for definida como Conditional o  conteúdo do controle é atualizando quando uma das seguintes condições for  True: Quando um postback é causado por um gatilho (trigger) para o controle;  
Quando você explicitamente chamar o método Update() do controle;  
Quando o controle estiver aninhado no interior de outro controle UpdatePanel  e o painel Pai for atualizado;  
Quando a propriedade ChildrenAsTriggers for definida como True e qualquer  controle filho de um controle UpdateControl causar um postback.
Se a propriedade ChildrenAsTriggers for definida  como false e a propriedade UpdateMode for definida como Always será lançada uma  exceção. Você pode também criar um controle UpdatePanel em um  template ContentTemplate de outro controle UpdatePanel, assim , se  você definir a propriedade UpdateMode de ambos os controles para  conditional, o painel externo não irá atualizar a sua região da página se  somente o painel interno for disparado. Porém se um refresh do painel externo é  disparado , ambos os painéis irão atualizar as suas respectivas regiões. Nem todos os controles podem ser usados com o controle UpdatePanel. A  seguir uma relação dos controles que não funcionam com o UpdatePanel: Controle TreeView e Menu;  
Controles Web Parts;  
Controles FileUpLoad quando eles são usados para enviar  arquivos como parte de um postback assíncrono;  
Controles GridView e DetailsView quando a  sua propriedade EnableSortingAndPagindCallBacks for definida  como True. (O padrão é false)  
Os controles: Login, PasswordRecovery, ChangePassword e  CreateUserWizard cujo conteúdo não foi convertido para templates  editáveis;  
Controles de validação : BaseCompareValidator,  BaseValidator, Compare, CustomValidator, RangeValidator,  RegularExpressionValidator, RequiredFieldValidator e controle ValidationSummary.  
Todos os demais controles funcionam com o UpdatePanel  excetuando as seguintes condições:Efetuar o registro de script pela chamada dos  métodos de registros do controle ClientScriptManager;  
Renderização de scripts;
O artigo original completo encontra-se em http://www.macoratti.net/07/07/ajax_upp.htm