viernes, 12 de junio de 2009

Doblandole la mano a los updatePanels de AjaxcontrolToolkit y javascript

Tenia que hacer que un texbox de .net se vieran y escribieran con mayuscula.

Hasta ningun problema, con css se puede hacer sin problema, y al momento de guardar en la DB hago un Uppercase, y estoy listo dije yo.

Hice una pequeña funcion , en javascript que lo hiciera, por que no eran textbox nativos ni de html ni de webform, eran de webform ya extendidos.

function changeUpperCaseCss(){
var textBox= $('<%=txtNombre.ClientID %>');
textBox.style.textTransform = 'uppercase';
}


listo, ahora solo me quedaba conectar el elemento en el onload, de la siguiente forma con mochikit.

addLoadEvent(
function (){
changeUpperCaseCss();
}
);


Funcionaba todo de maravilla, pero el problema el maldito updatePanel, cada vez que se refrescaba el panel, se perdia o refrescaba el texbox, entonces perdia la propiedad textTransform que le habia puesto con javascript.

para solucionar esto tuve que usar el javascript que tiene el ajaxControlToolkit
de la siguiente forma

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args) {
changeUpperCaseCss();
}


Que hace esto, primero optiene la instacia PageRequestManager. y definimos la funcion EndRequestHandler esta funcion se llamara cada vez que se termine el request producido por un update panel.

Asi quedo soluciona. y todo en el Cliente :D
--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

1 comentario:

  1. me puedes explicar, donde se pone esta parte del codigo:
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); function EndRequestHandler(sender, args) { changeUpperCaseCss(); }

    ResponderEliminar