Tema AJAX
Tema AJAX
Tema AJAX
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Programación avanzada en .NET con C#<br />
Servicio de Informática<br />
20<br />
<strong>AJAX</strong><br />
desencadena PageRequestManager es initializeRequest, que tiene lugar antes de que se<br />
produzca una devolución de llamada asincrónica.<br />
El segundo parámetro que se transmite a un controlador de initializeRequest es un objeto del<br />
tipo initializeRequestEventArgs. Este objeto contiene un método get_postBackElement que<br />
identifica el botón o el elemento que ha desencadenado la actualización. También dispone de<br />
un método set_cancel que se puede usar para cancelar una devolución de llamada antes de<br />
que ocurra. Este es un ejemplo del método set_cancel en acción:<br />
<br />
var prm = Sys.WebForms.PageRequestManager.getInstance();<br />
prm.add_initializeRequest(inicia);<br />
function inicia(sender, args)<br />
{<br />
args.set_cancel(!confirm(‘¿Seguro?’));<br />
}<br />
<br />
En este ejemplo, antes de que se ejecute una devolución de llamada, un controlador de<br />
intializeRequest abre un cuadro de confirmación que pregunta al usuario si debe continuar la<br />
actualización. Al hacer clic en Cancelar en el cuadro de confirmación, se transfiere true a<br />
set_cancel, lo que detiene en seco la devolución de llamada.<br />
En la vida real, probablemente no le interesa pedir confirmación al usuario antes de permitir<br />
que continúe una actualización pero podría ser útil tener la posibilidad de cancelar una<br />
actualización en función de las condiciones que existan en otras partes de la aplicación.<br />
Varios UpdatePanels<br />
Una página puede contener varios UpdatePanels. De forma predeterminada, cuando se<br />
actualiza un UpdatePanel en una página, los demás UpdatePanel de la página también se<br />
actualizan. A veces esto será lo que quiera pero, pero con frecuencia, no necesitará que se<br />
actualicen todos los UpdatePanel como respuesta a la actualización de otros UpdatePanel.<br />
Puede elegir las instancias de UpdatePanel que desee actualizar (y cuándo) si establece en<br />
"Condicional" la propiedad de UpdateMode de cada control UpdatePanel de la página.<br />
A continuación, cuando se actualice un UpdatePanel y éste llame a un controlador de eventos<br />
del cliente, llame a UpdatePanel.Update en los demás paneles que desee actualizar. De este<br />
modo se reduce la carga en el servidor, al disminuir el número de controles que se<br />
representan, y se reduce el volumen de datos de la respuesta porque los UpdatePanel que no<br />
se actualicen no agregarán nada a la respuesta.