2010-10-15 9 views
5

Requisitos: Tenemos un formulario para que los usuarios lo envíen. En el envío, los datos del formulario se utilizan para cálculos y generación de informes.Abre nueva ventana en la devolución de datos

En la devolución de datos, se muestran un mensaje de confirmación y más opciones. Queremos mostrar el informe en una nueva ventana/pestaña.

Condiciones: No queremos utilizar JavaScript en la devolución de datos para abrir una nueva ventana onload ya que esto deje de usuarios que tienen JavaScript desactivado.

soluciones posibles:

  1. abrir una nueva ventana en el botón clic en un identificador único (el que suceda devolución de datos para la ejecución de código). La nueva ventana debe solicitar el informe, pero el código espera hasta que se genere el informe. En la página del informe, muestre un mensaje de espera que muestra los tiempos de espera y le permite al usuario actualizar o usar la actualización de página en meta.
  2. Usar JavaScript pero detectar si JS está habilitado en la devolución (estableciendo un valor variable usando JS en la carga del formulario), si JS está deshabilitado mostrar un enlace al usuario para abrir otra ventana con JS en la página carga después de la devolución.

Preguntas:

  1. ¿Hay alguna forma mejor de hacer esto?
  2. ¿Algún consejo para mejorar las soluciones anteriores?
  3. ¿Cuál preferirás y por qué?

Respuesta

3

Haga un enlace con target=_blank que redirige a una página que genera el informe y luego muéstrelo.

Los usuarios de IMO que desean acceder a su sitio tendrán javascript habilitado. La web sin javascript no es una tela, tal vez fue hace unos años, pero ahora ...

Si desea probar la JS, puede registrar un script después de la devolución de datos:

// normal postback 
ScriptManager.RegisterStartupScript(this, GetType(), "key", "script();", true); 

// postback from a updatepanel 
ScriptManager.RegisterStartupScript(updatePanel, updatePanel.GetType(), "key", "script();", true); 
1

Comprobar si js es enabled, y si js está habilitado, use ClientScript.RegisterStartupScript(this.GetType(), "yourScript", script, true); para ejecutar su js y abrir su página de informe. Si js id no habilitado muestra un enlace a la página del informe.

Cuestiones relacionadas