2009-12-07 19 views

Respuesta

4

He resuelto este problema mediante la adición de esta línea de código en el código detrás después de todos mis métodos de acabado:

ScriptManager.RegisterStartupScript(this, typeof(string), "script", 
"<script type=text/javascript> 
parent.location.href = parent.location.href;</script>", false); 

Y la razón No escribí parent.location.reload() y escribí parent.location.href = parent.location.href para no enviar los datos dos veces al servidor, ya que quiero una nueva carga de página nueva.

2

El envío de un formulario es la acción FINAL del documento en el Iframe. Una vez que envía un formulario, esa página ha sido "enviada" y ya no está activa. Si actualiza primero el padre, pierde el iframe. En el momento en que envía el Iframe, ya no puede hablar con el padre.

Usted puede hacer una de las pocas cosas aquí:

  • objetivo el padre al momento de enviar el formulario, entonces el padre tendrá lo que quiera en una nueva iframe en esa página.
  • Haga que la página resultante en el iframe vuelva a cargar el elemento primario mediante JavaScript en la página de resultados.
3

Utilice un controlador de eventos onload en su iframe. Cuando se dispara al cabo del presente, ejecutar su top.location.reload ...

// In parent 
window.onload = function() { 
    document.getElementById("MY_IFRAME").onload = function() { 
    top.location.reload(); 
    } 
} 
2

Si solo desea actualizar algunas partes de la página primaria y no necesitará actualizar toda la página, y la mayoría de las veces este es el caso, ya que este enfoque no recarga el iframe en sí, puede simplemente llamar a una función de javascript desde la página secundaria.

window.parent.myFunctionInParent('my argument'); 

El recurso que le guía está aquí: Refresh parent page partially from iframe

Gracias.

Cuestiones relacionadas