![]() |
| |||||||
| Registrarse | Preguntas Frecuentes | Lista de Foreros | Calendario | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
| | LinkBack | Herramientas | Desplegado |
| |||
| Buenas y gracias, la pregunta parece facil pero me trae por la calle de la amargura. El caso es que tengo una página que al pulsar un botón tiene que validar unos campos y si lo valida oculta un panel y muestra otro, hasta ahí fácil, el caso es que la página usa master pages, y dentro del default.aspx hay un control ascx que es el que hace la validación al hacer el click en el botón La estructura es: Master page default.aspx control.ascx asp anelasp:button el caso es que al invocar la página muestra correctamente todo el contenido pero al hacer clic en el botón submite, pasa por el page load, etc, pero no pasa por el evento button_click y me elimina el contenido de los textbox que tenía que validar, y lo más gracioso es que si una vez que ha hecho ese submit vuelvo a hacer click en el botón vuelve a submitir, pasa por los loads y ahora si entra en el button_click y hace lo que tiene que hacer. no se si habeis pillado el caso, es decir, el primer click no en lanza el evento button_click y el segundo sí. indagango un poco el código generado en cada caso veo que varía un poco los id de cada control, de la siguiente forma, lo que muestro en rojo es lo que cambia código html resumido como se muestra al entrar en la url y que al hacer click no funciona <div class = "Presupuesto"> <div id="ctl00_Contenido_ctl01_DatosServicio" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_Contenido_ctl01_btnContinuar')"> <div class = "derPresupuesto"> <p><input name="ctl00$Contenido$ctl01$Origen" type="text" maxlength="100" id="ctl00_Contenido_ctl01_Origen" class="inputLargo" /></p> <p><input name="ctl00$Contenido$ctl01$Destino" type="text" maxlength="100" id="ctl00_Contenido_ctl01_Destino" class="inputLargo" /></p> <input type="submit" name="ctl00$Contenido$ctl01$btnContinuar" value="Continuar" id="ctl00_Contenido_ctl01_btnContinuar" /> <input type="submit" name="ctl00$Contenido$ctl01$btnBorrarTodo" value="Borrar Formulario" id="ctl00_Contenido_ctl01_btnBorrarTodo" /> </div> </div> <div style ="clear:both;"></div> </div> código html resumido tras hacer click en el botón y que al hacer ahora click si ejecuta el evento <div class = "Presupuesto"> <div id="ctl00_Contenido_ctl00_DatosServicio" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_Contenido_ctl00_btnContinuar')"> <div class = "derPresupuesto"> <p><input name="ctl00$Contenido$ctl00$Origen" type="text" maxlength="100" id="ctl00_Contenido_ctl00_Origen" class="inputLargo" /></p> <p><input name="ctl00$Contenido$ctl00$Destino" type="text" maxlength="100" id="ctl00_Contenido_ctl00_Destino" class="inputLargo" /></p> <input type="submit" name="ctl00$Contenido$ctl00$btnContinuar" value="Continuar" id="ctl00_Contenido_ctl00_btnContinuar" /> <input type="submit" name="ctl00$Contenido$ctl00$btnBorrarTodo" value="Borrar Formulario" id="ctl00_Contenido_ctl00_btnBorrarTodo" /> </div> <div style ="clear:both;"></div> </div> En el primer fragmento de código no hay ningún control con ctrl00$........ ctrl$00, y directamente pasa al 01, cosa que al hacer click en el botón y submitir aparece correcto, y eso es lo único que creo que es lo que hace que no funcione, pero no se, es muy mosqueante y no le veo ningún sentido. Alguien sabe pq puede dar esa diferencia?? Gracias de antemano. |
| | ||||
| ||||
| |
| |||
| Buenas otra vez. Al final el problema era del ciclo de vida de la página, os comento. En mi página añadía dinámicamente controles ascx con sus eventos, etc, y los añadía en el load de la página principal, y al parecer si los pongo ahí se muestran pero como ya se han inicializado los controles de página no carga los eventos, de forma que hasta el siguiente refresco de página (en mi caso el primer click de botón) no refrescaba tb los eventos. La solución es tan simple como cargar los controles Ascx en el init de la página, y ahí sí carga los eventos a la primera. Viva San google, que llevo 2 días como loco buscando. "Fulano de tal" <jagar1981***hotmail.com> escribió en el mensaje de noticias news:%23HNnAFOGJHA.5224***TK2MSFTNGP03.phx.gbl... Buenas y gracias, la pregunta parece facil pero me trae por la calle de la amargura. El caso es que tengo una página que al pulsar un botón tiene que validar unos campos y si lo valida oculta un panel y muestra otro, hasta ahí fácil, el caso es que la página usa master pages, y dentro del default.aspx hay un control ascx que es el que hace la validación al hacer el click en el botón La estructura es: Master page default.aspx control.ascx asp anelasp:button el caso es que al invocar la página muestra correctamente todo el contenido pero al hacer clic en el botón submite, pasa por el page load, etc, pero no pasa por el evento button_click y me elimina el contenido de los textbox que tenía que validar, y lo más gracioso es que si una vez que ha hecho ese submit vuelvo a hacer click en el botón vuelve a submitir, pasa por los loads y ahora si entra en el button_click y hace lo que tiene que hacer. no se si habeis pillado el caso, es decir, el primer click no en lanza el evento button_click y el segundo sí. indagango un poco el código generado en cada caso veo que varía un poco los id de cada control, de la siguiente forma, lo que muestro en rojo es lo que cambia código html resumido como se muestra al entrar en la url y que al hacer click no funciona <div class = "Presupuesto"> <div id="ctl00_Contenido_ctl01_DatosServicio" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_Contenido_ctl01_btnContinuar')"> <div class = "derPresupuesto"> <p><input name="ctl00$Contenido$ctl01$Origen" type="text" maxlength="100" id="ctl00_Contenido_ctl01_Origen" class="inputLargo" /></p> <p><input name="ctl00$Contenido$ctl01$Destino" type="text" maxlength="100" id="ctl00_Contenido_ctl01_Destino" class="inputLargo" /></p> <input type="submit" name="ctl00$Contenido$ctl01$btnContinuar" value="Continuar" id="ctl00_Contenido_ctl01_btnContinuar" /> <input type="submit" name="ctl00$Contenido$ctl01$btnBorrarTodo" value="Borrar Formulario" id="ctl00_Contenido_ctl01_btnBorrarTodo" /> </div> </div> <div style ="clear:both;"></div> </div> código html resumido tras hacer click en el botón y que al hacer ahora click si ejecuta el evento <div class = "Presupuesto"> <div id="ctl00_Contenido_ctl00_DatosServicio" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_Contenido_ctl00_btnContinuar')"> <div class = "derPresupuesto"> <p><input name="ctl00$Contenido$ctl00$Origen" type="text" maxlength="100" id="ctl00_Contenido_ctl00_Origen" class="inputLargo" /></p> <p><input name="ctl00$Contenido$ctl00$Destino" type="text" maxlength="100" id="ctl00_Contenido_ctl00_Destino" class="inputLargo" /></p> <input type="submit" name="ctl00$Contenido$ctl00$btnContinuar" value="Continuar" id="ctl00_Contenido_ctl00_btnContinuar" /> <input type="submit" name="ctl00$Contenido$ctl00$btnBorrarTodo" value="Borrar Formulario" id="ctl00_Contenido_ctl00_btnBorrarTodo" /> </div> <div style ="clear:both;"></div> </div> En el primer fragmento de código no hay ningún control con ctrl00$........ ctrl$00, y directamente pasa al 01, cosa que al hacer click en el botón y submitir aparece correcto, y eso es lo único que creo que es lo que hace que no funcione, pero no se, es muy mosqueante y no le veo ningún sentido. Alguien sabe pq puede dar esa diferencia?? Gracias de antemano. |
| |||
| Buenas otra vez. Al final el problema era del ciclo de vida de la página, os comento. En mi página añadía dinámicamente controles ascx con sus eventos, etc, y los añadía en el load de la página principal, y al parecer si los pongo ahí se muestran pero como ya se han inicializado los controles de página no carga los eventos, de forma que hasta el siguiente refresco de página (en mi caso el primer click de botón) no refrescaba tb los eventos. La solución es tan simple como cargar los controles Ascx en el init de la página, y ahí sí carga los eventos a la primera. Viva San google, que llevo 2 días como loco buscando. "Fulano de tal" <jagar1981***hotmail.com> escribió en el mensaje de noticias news:%23HNnAFOGJHA.5224***TK2MSFTNGP03.phx.gbl... Buenas y gracias, la pregunta parece facil pero me trae por la calle de la amargura. El caso es que tengo una página que al pulsar un botón tiene que validar unos campos y si lo valida oculta un panel y muestra otro, hasta ahí fácil, el caso es que la página usa master pages, y dentro del default.aspx hay un control ascx que es el que hace la validación al hacer el click en el botón La estructura es: Master page default.aspx control.ascx asp anelasp:button el caso es que al invocar la página muestra correctamente todo el contenido pero al hacer clic en el botón submite, pasa por el page load, etc, pero no pasa por el evento button_click y me elimina el contenido de los textbox que tenía que validar, y lo más gracioso es que si una vez que ha hecho ese submit vuelvo a hacer click en el botón vuelve a submitir, pasa por los loads y ahora si entra en el button_click y hace lo que tiene que hacer. no se si habeis pillado el caso, es decir, el primer click no en lanza el evento button_click y el segundo sí. indagango un poco el código generado en cada caso veo que varía un poco los id de cada control, de la siguiente forma, lo que muestro en rojo es lo que cambia código html resumido como se muestra al entrar en la url y que al hacer click no funciona <div class = "Presupuesto"> <div id="ctl00_Contenido_ctl01_DatosServicio" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_Contenido_ctl01_btnContinuar')"> <div class = "derPresupuesto"> <p><input name="ctl00$Contenido$ctl01$Origen" type="text" maxlength="100" id="ctl00_Contenido_ctl01_Origen" class="inputLargo" /></p> <p><input name="ctl00$Contenido$ctl01$Destino" type="text" maxlength="100" id="ctl00_Contenido_ctl01_Destino" class="inputLargo" /></p> <input type="submit" name="ctl00$Contenido$ctl01$btnContinuar" value="Continuar" id="ctl00_Contenido_ctl01_btnContinuar" /> <input type="submit" name="ctl00$Contenido$ctl01$btnBorrarTodo" value="Borrar Formulario" id="ctl00_Contenido_ctl01_btnBorrarTodo" /> </div> </div> <div style ="clear:both;"></div> </div> código html resumido tras hacer click en el botón y que al hacer ahora click si ejecuta el evento <div class = "Presupuesto"> <div id="ctl00_Contenido_ctl00_DatosServicio" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_Contenido_ctl00_btnContinuar')"> <div class = "derPresupuesto"> <p><input name="ctl00$Contenido$ctl00$Origen" type="text" maxlength="100" id="ctl00_Contenido_ctl00_Origen" class="inputLargo" /></p> <p><input name="ctl00$Contenido$ctl00$Destino" type="text" maxlength="100" id="ctl00_Contenido_ctl00_Destino" class="inputLargo" /></p> <input type="submit" name="ctl00$Contenido$ctl00$btnContinuar" value="Continuar" id="ctl00_Contenido_ctl00_btnContinuar" /> <input type="submit" name="ctl00$Contenido$ctl00$btnBorrarTodo" value="Borrar Formulario" id="ctl00_Contenido_ctl00_btnBorrarTodo" /> </div> <div style ="clear:both;"></div> </div> En el primer fragmento de código no hay ningún control con ctrl00$........ ctrl$00, y directamente pasa al 01, cosa que al hacer click en el botón y submitir aparece correcto, y eso es lo único que creo que es lo que hace que no funcione, pero no se, es muy mosqueante y no le veo ningún sentido. Alguien sabe pq puede dar esa diferencia?? Gracias de antemano. |
| |||
| Buenas otra vez. Al final el problema era del ciclo de vida de la página, os comento. En mi página añadía dinámicamente controles ascx con sus eventos, etc, y los añadía en el load de la página principal, y al parecer si los pongo ahí se muestran pero como ya se han inicializado los controles de página no carga los eventos, de forma que hasta el siguiente refresco de página (en mi caso el primer click de botón) no refrescaba tb los eventos. La solución es tan simple como cargar los controles Ascx en el init de la página, y ahí sí carga los eventos a la primera. Viva San google, que llevo 2 días como loco buscando. "Fulano de tal" <jagar1981***hotmail.com> escribió en el mensaje de noticias news:%23HNnAFOGJHA.5224***TK2MSFTNGP03.phx.gbl... Buenas y gracias, la pregunta parece facil pero me trae por la calle de la amargura. El caso es que tengo una página que al pulsar un botón tiene que validar unos campos y si lo valida oculta un panel y muestra otro, hasta ahí fácil, el caso es que la página usa master pages, y dentro del default.aspx hay un control ascx que es el que hace la validación al hacer el click en el botón La estructura es: Master page default.aspx control.ascx asp anelasp:button el caso es que al invocar la página muestra correctamente todo el contenido pero al hacer clic en el botón submite, pasa por el page load, etc, pero no pasa por el evento button_click y me elimina el contenido de los textbox que tenía que validar, y lo más gracioso es que si una vez que ha hecho ese submit vuelvo a hacer click en el botón vuelve a submitir, pasa por los loads y ahora si entra en el button_click y hace lo que tiene que hacer. no se si habeis pillado el caso, es decir, el primer click no en lanza el evento button_click y el segundo sí. indagango un poco el código generado en cada caso veo que varía un poco los id de cada control, de la siguiente forma, lo que muestro en rojo es lo que cambia código html resumido como se muestra al entrar en la url y que al hacer click no funciona <div class = "Presupuesto"> <div id="ctl00_Contenido_ctl01_DatosServicio" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_Contenido_ctl01_btnContinuar')"> <div class = "derPresupuesto"> <p><input name="ctl00$Contenido$ctl01$Origen" type="text" maxlength="100" id="ctl00_Contenido_ctl01_Origen" class="inputLargo" /></p> <p><input name="ctl00$Contenido$ctl01$Destino" type="text" maxlength="100" id="ctl00_Contenido_ctl01_Destino" class="inputLargo" /></p> <input type="submit" name="ctl00$Contenido$ctl01$btnContinuar" value="Continuar" id="ctl00_Contenido_ctl01_btnContinuar" /> <input type="submit" name="ctl00$Contenido$ctl01$btnBorrarTodo" value="Borrar Formulario" id="ctl00_Contenido_ctl01_btnBorrarTodo" /> </div> </div> <div style ="clear:both;"></div> </div> código html resumido tras hacer click en el botón y que al hacer ahora click si ejecuta el evento <div class = "Presupuesto"> <div id="ctl00_Contenido_ctl00_DatosServicio" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_Contenido_ctl00_btnContinuar')"> <div class = "derPresupuesto"> <p><input name="ctl00$Contenido$ctl00$Origen" type="text" maxlength="100" id="ctl00_Contenido_ctl00_Origen" class="inputLargo" /></p> <p><input name="ctl00$Contenido$ctl00$Destino" type="text" maxlength="100" id="ctl00_Contenido_ctl00_Destino" class="inputLargo" /></p> <input type="submit" name="ctl00$Contenido$ctl00$btnContinuar" value="Continuar" id="ctl00_Contenido_ctl00_btnContinuar" /> <input type="submit" name="ctl00$Contenido$ctl00$btnBorrarTodo" value="Borrar Formulario" id="ctl00_Contenido_ctl00_btnBorrarTodo" /> </div> <div style ="clear:both;"></div> </div> En el primer fragmento de código no hay ningún control con ctrl00$........ ctrl$00, y directamente pasa al 01, cosa que al hacer click en el botón y submitir aparece correcto, y eso es lo único que creo que es lo que hace que no funcione, pero no se, es muy mosqueante y no le veo ningún sentido. Alguien sabe pq puede dar esa diferencia?? Gracias de antemano. |
| |
| |
![]() |
| Herramientas | |
| Desplegado | |
| |
Temas Similares | ||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Problemas con el evento click de botón que se ejecuta a veces (1er click no, restantes si se ejecuta el evento clic) | Fulano de tal | Newsgroup microsoft.public.es.dotnet.vb | 3 | 24-09-2008 16:14:30 |