Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Ayuda urgente porfavor (http://www.forosdelweb.com/f29/ayuda-urgente-porfavor-318876/)

Jmcc 22/07/2005 04:41

Ayuda urgente porfavor
 
Tengo una página en la que hay unos control validators que me validan una serie de campos. El problema es que estos controles me desabilitan unos botones que tengo en la página, osea que estos botones no hacen el envio a servidor, y por tanto no ejecutan el evento click en el servidor. Simplemente no hacen nada.


Tengo entendido que es por alguna actualización de windows xp o algo así, ayudame si puedes.


:borracho:

moNTeZIon 22/07/2005 05:49

Lo que a mi me ha ocurrido es que al tener los control validators, cualquier boton de los que tienes de hace el postback, con lo que te saltan los controles de validacion, aunque no sea el botón del formulario, ya que lo que hace cualquier boton es enviar el form al servidor.

Yo utilicé el truco de poner los controles Enabled=False y cuando se presiona el boton que Si tienen que saltar los controles de validacion, les pongo el Enabled=True
Eso si, no podrá ser del lado del cliente.

Saludos!

Jmcc 22/07/2005 06:00

Mas dudas ...
 
Ya pero mi problema es que si hago eso en el botón de siguiente, hacía la otra pantalla, aunque habilite los campos, me salta a la siguiente pantalla, sin hacer la validación en la pantalla anterior :borracho:

moNTeZIon 22/07/2005 10:54

Te refieres a que tienes los controlvalidators con enabled=True y pasa d ti cuando le das al boton?

Jmcc 25/07/2005 07:51

Ayuuuuuuuuuuuuuuuuuuuuuudaaaaaaaaaaaa !!
 
Sip, cuando le doy al botón de siguiente, me ejecuta la validación, pero si la validación es correcta, no me ejecuta el evento click que hay programado en el servidor.

Alguna sugerencia?

moNTeZIon 25/07/2005 09:15

Pues tio.. si que es raro.. pon el codigo del botón para ver, pero en fin, si dices que te salta la validación cuando los datos son incorrectos... Te debería ejecutar el codigo del botón cuando si lo son.

Jmcc 25/07/2005 09:40

En fin ...
 
En fin nu se, me tomaré dos botellas de vodka a ver si me abre la mente ... gracias igualmente :adios:

Rodolfo Israel 25/07/2005 11:11

Hola Jmcc, para empezar, el titulo de tu post no es muy conveniente, creo que te podria ayudar mejor algo como "Ayuda con los controls Validators" o algo parecido, en fin, tu problema supongo que es porque tus controls validators tiene la propiedad EnableClientScript a true, esto hace que las validaciones ocurran del lado del cliente, por eso cuando hay algun error no se ejecutan los eventos click porque nisiquiera se envia el error al servidor, esto pasa tambien por que tus botones tienes la propiedad CauseValidation a true, y esto combinado con EnableClientScrip = true hace que no se ejecuten los eventos click, te recomiento que desabilites ambas opciones (las iguales a false) y la validacion la hagas "a mano" desde tus eventos click

ej

Button1_Click(....
Page.Validate()
if (Page.isValid)
'Ejecutar codigo deseado
else
'Mostrar mensaje de error
end if

end sub

Espero que esto te pueda ayudar

moNTeZIon 25/07/2005 11:20

Entonces tengo una duda. Jmcc dice que le saltan los controles cuando hay algun fallo, y cuando no hay fallo, es cuando no le ejecuta el codigo del botón. Se supone que los controles funcionan porqué le saltan con el error. Si no saltan, entonces se supone que ha pasado las validaciones... ¿Por qué en este punto no viaja al servior? Por eso del CausesValidation?

Gracias!

Rodolfo Israel 25/07/2005 11:48

Ah chinga, buen punto el que comentas, en efecto, tambien se me hace muy raro, los botones no le deben funcionar cuando las validaciones vayan mal, sin embargo si todo salio bien en las validaciones el código del boton se debe de ejecutar, o por lo menos en teoria, no creo que se deba a un problema de Xp pues yo ahi lo he probado y me funciona, habria que preguntarle a Jmcc si puede solucionar el problema con mi propuesta, si no que nos envie algo de código para ver que pasa, Por lo otro que comentras (lo del CausesValidation) esta propiedad solo le dice al control que cuando se ejectue algun evento del mismo, no provoque una validacion en otros controles, de manera contraria cuando le das click a un boton, lo primero que se hace antes de ejecutar el codigo del evento es que se validan los controles que no se hayan validado, si todo sale bien entonces se ejecuta el codigo, si no pues no se ejecuta, por eso si desabilitan esta opcion, tienen que provocar la revalidacion a mano utilizando Page.Validate()

Esperemos la respuesta de Jmcc, posiblemente tambien redacto mal su problema.

Saludos.

RootK 25/07/2005 12:12

El problema es por un service pack del framework, :serio: tiene problemas con los validators.. y cuando inlucyes alguno de ellos en tu página aunque la expresion sea correcta no se ejecuta el evento que deseas.

No recuerdo bien cual es el service pack que tiene problemas.. :pensando: . me acuerdo que hace tiempo en un post hable al respecto, podría darte una vuelta por el buscador...

Salu2 :cool:

Jmcc 26/07/2005 01:59

Respuesta ...
 
Probaré lo que decis del page.validate este, pero lo que se dice en el último mensaje, es lo correcto, y es lo que yo creo que me está pasando, pero no se que hay que quitar. Tengo la aplicación colgada en un servidor el cual está actualizado, pero en mi pc también tengo la aplicación y no lo tengo actualizado. Entonces si ejecuto la web en el que está actualizado, cuando le doy al botón de siguiente, y se validan los controles en cliente, si el resultado de esta validación es correcta, no hace nada, no vuelve a servidor para ejecutar el código programado en el evento click, evidentemente, si hay algún error muestra un mensaje, ese es mi problema.

Y yo sabía que era de alguna actualización del framework o de algún servide pack, pero igualmente probaré lo que habéis puesto antes.

Gracias por vuestro tiempo, y os avisaré, a ver si consigo arreglarlo... por cierto no sabréis que actualización es la que da por culo no? :pensando:

Jmcc 26/07/2005 02:32

Mas ...
 
He probado lo que me habeis dicho, lo de desabilitar ambas opciones, usea, ponerlas a false, y no funciona, ahora sencillamente cuando hago if page.isvalid then simplemente siempre me dice que es válida.

En fin, sigo esperando que alguien me diga que actualización es la que molesta ...

moNTeZIon 26/07/2005 02:51

Rootk parece estar bastante seguro de lo que dice. Intenta investigar en esa dirección y deja de hacer pruebas, porqué si se trata de un Service Pack, te vas a volver loco probando cosas y que no funcionen...

Saludos man.

Jmcc 26/07/2005 02:57

Respuesta ...
 
Vaya, está claro ... :adios:

Jmcc 26/07/2005 03:59

Solucionado !!
 
Por fin lo he arreglado, el problema es con el "Service pack para framework version 1.1" lo he desinstalado y listo, ya funciona, gracias a todos por vuestro tiempo :adios:

RootK 26/07/2005 14:45

Cita:

Por fin lo he arreglado, el problema es con el "Service pack para framework version 1.1" lo he desinstalado y listo, ya funciona,
:arriba:

Creo que vale la pena colocarlo dentro de las faq´s para futuras refencias.. :si:

Jmcc 27/07/2005 04:05

Respuesta ...
 
Pues si porqué a mas de uno le pasará :aplauso:

chcma 27/07/2005 04:28

Jooooder, vaya con Microsoft.


La zona horaria es GMT -6. Ahora son las 10:55.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.