lunes, 3 de agosto de 2009

Ajax .Net: Actualizar un UpdatePanel con código Javascript

Digamos que tengo dentro de un UpdatePanel la hora que se recupera del lado del servidor y no de la computadora del cliente y se desea que la hora se actualice cada segundo del lado del cliente; éste siempre debe ver la hora del servidor.

El primer paso es modificar el evento Load del UpdatePanel; en éste control debemos poner el código para que la hora que aparece en un label se actualice cada vez que ocurre un postback asíncrono.

Protected Sub UpdatePanel1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles UpdatePanel1.Load
Label1.Text = DateTime.Now
End Sub

El siguiente paso es usar el siguiente código Javascript:

<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
setTimeout("Actualizar()", 1000);
function Actualizar() {
prm._doPostBack("UpdatePanel1", "");
setTimeout("Actualizar()", 1000);
}
</script>

Obviamente, con éste ejemplo se pueden implementar muchas otras cosas!.

En caso de no querer implementar la función actualizar, entonces se podría usar el control Timer. En el evento Tick se pone el código para que actualice el contenido del Lable1. Y en el UpdatePanel se agrega un Trigger que haga referencia al control Timer y al evento Tick.

No hay comentarios: