sábado, 19 de septiembre de 2009

Genexus 9, Confirm en web

Estoy trabajando con gx 9 web y quiero hacer lo que en las versiones win es el conocido Confirm().


Un ejemplo de esto en win seria preguntarle si esa seguro si quiere realizar determinada acción, entonces el código seria algo así




Confirm("Estas seguro de borrar el archivo?',N)


if confirmed()


// eliminamos el archivo


endif


Bueno en web esto no anda entonces lo que se utiliza es un poco de los eventos html para esto.


Entonces seria algo así, tenemos un botón el cual al cliquearlo queremos que nos pregunte si realmente estamos seguros.




En el evento start ponemos algo asi


btn.JSEvent('onclick',"confirm('Realmente desea ...?')")




donde btn es el nombre del botón




luego en el evento del botón, solamente tenemos que poner el código para eliminar o hacer lo que deseamos.


Esto lo que produce es nos muestra una ventana Windows, en la cual nos pone el texto "Realmente ..." y nos pide que Aceptemos o Cancelemos, y se ejecuta el código del evento solamente si Aceptamos.



Volver al inicio

6 comentarios:

Simelo ... alias Olemis Lang. dijo...

Muy buen artículo. Me he basado en él para enriquecer una guía para migrar aplicaciones GeneXus de escritorio hacia la web utilizando la versión 9.

Serán bienvenidas las sugerencias que sirvan para añadir otras incompatibilidades o diferencias entre el ambiente web y el de escritorio, para aportar soluciones a los problemas allí mencionados, o corregir las ideas que ya están documentadas. Espero nuevos comentarios ;o)

¡ Gracias !

Guido Gaston Cancino dijo...

Gaston Cancino Eyzaguirre:
Tambien hay otra forma de hacerlo y es desde un enlace con la etiqueta a href.

EN EL EVENTO START:

form.HeaderRawHTML += 'function eliminar()'
form.HeaderRawHTML += '{'
form.HeaderRawHTML += 'var vf=confirm("¿Esta seguro que desea Eliminar este Proyecto?");'
form.HeaderRawHTML += 'if(vf)'
form.HeaderRawHTML += 'return true;'
form.HeaderRawHTML += 'else'
form.HeaderRawHTML += 'return false;'
form.HeaderRawHTML += '}'
form.HeaderRawHTML += '/script>'

Y POR EJEMPLO EN EL EVENTO REFRESH:
reemplazar "<" por <

&Html += 'td class="links">"<"a href="heliminar.aspx?pry,' + trim(str(PryCod)) + '" onclick="return eliminar();">"<"img src="images/14x14/delete-page-red.gif" border="0" alt="Eliminar" title="Eliminar" />"<"/a>"<"/td>'

Anónimo dijo...

Excelente aporte!
Se nota que eres de pupilo de Sebastián Colombo

Anónimo dijo...

Muchas Gracias
Era justo lo que necesitaba, una forma facil y rapida de mostrar el mensaje.
Saludes

Josselhin Moreira dijo...

necesito que un web panel que esta dentro de otro web panel me devuelva unos parametros y no encuentro la forma pls.... ayuda...

Néstor Lesna dijo...

No te sirve manejar variables de session? en el webpanel de adentro las grabas y en el de afuera las lees.