¿Cómo enviar una solicitud de publicación síncrona con un solo botón en GWT o GXT?

¿Cómo puedo enviar una solicitud POST con un solo botón y sin crear ningún FormPanel adjunto?

Quiero enviar HashMap completo de datos a través de POST para completar el informe y luego devolver este informe como flujo de archivo XLS, por lo que el usuario debe obtener el cuadro de diálogo "Guardar como ...".

No puedo hacerlo con RequestBuilder ya que crea solicitudes AJAX y el archivo no se puede descargar de esta manera.

¿Quizás el GXT de Sencha tiene una solución para esto? También puede caber aquí.

preguntado el 01 de diciembre de 11 a las 13:12

¿Puedo preguntar cuál es el problema con FormPanel? -

@Thomas Broyer: Tengo una cuadrícula con datos y botones debajo. Cada botón hace algo completamente diferente a los demás (cerrar ventana, mostrar la selección de la cuadrícula en otra Div, generar un informe desde la cuadrícula). Entonces, sería incorrecto envolver el FormPanel alrededor de todos esos botones. No hay campos de formulario típicos para que el usuario ingrese. -

¿Qué tal crear el FormPanel de forma dinámica, tal como crearía un RequestBuilder? -

2 Respuestas

Esto es lo que hice. Envíe un POST AJAX. Su servidor debería enviar la URL del XLS como respuesta. Cuando el cliente (navegador / GWT) recibe la respuesta, abre un IFRAME oculto con la URL XLS. Si el servidor establece el encabezado 'Disposición de contenido' en 'Adjunto', aparecerá el cuadro de diálogo 'Guardar como'.

Respondido el 01 de diciembre de 11 a las 18:12

Eso implica almacenar en el servidor los datos de mi informe de la primera solicitud para generar el flujo de informes xls en la segunda solicitud. Quiero evitar eso - denu

¿Eh? Si almacena la fecha o no es irrelevante. La técnica seguirá funcionando. ¿Debo estar perdiendo algo de claridad en tu problema? - JP Richardson

Si desea limitarlo a una solicitud, envíe los datos XLS y use un URI de datos. en.wikipedia.org/wiki/Data_URI_scheme - JP Richardson

Puedes crear new FormPanel("_self"). Este formulario devolverá su transmisión XLS directamente, no al iFrame de fondo.

respondido 22 nov., 13:00

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.