Actualizar un updatepanel en la ventana padre desde la ventana hija

Preguntado hace 1 año

Jesús Molinero
Votos
PositivosNegativosTotal
1 0 1
43 Visualizaciones
Compártelo: Compártelo en twitterCompártelo en Facebook

Hola, en la aplicación que desarrollamos se abre con javascript una ventana hija para modificar los detalles de un registro, una vez modificados y salvados nos gustaría que se refrescase la ventana padre y a ser posible sólo el update panel que tiene los datos ¿es posible?

Actualizando datos

3 Respuestas

Hace 1 año

Gabriel Molina
Votos
PositivosNegativosTotal
202

Puedes usar window.opener para llamar a la ventana que abrió la actual, y así actualizar sólo el updatepanel de la ventana padre con una función que llame a __doPostBack como se explica en http://www.babelias.com/preguntas/actualizar-updatepanel-con-javascript/208.aspx

Pongo un ejemplito:

Parent.html

<body>

<script>

function ActualizarUpdatePanel()
{
    __doPostBack('ct10_fomulario_updatePanel1', '');
}


function Abre()
{
    window.open("Son.html" , "ventana1" , "width=500,height=500,scrollbars=NO");
}



</script>


<button onclick="Abre();" />

</body>

Son.html

<body>

<script>

function MostrarAlerta()
{


    if (window.opener && !window.opener.closed)
    {
        window.opener.ActualizarUpdatePanel();  
        window.close();
    }
    else
    {
        alert('ventana padre nula');
    }


}

</script>

<button onclick="MostrarAlerta();" />

</body>

Ojo, controla que window.opener no es ni nulo ni está cerrado.

Cerrar

Hace 1 año

Rafa

Rafa

1mDistinciones de plata2Distinciones de bronce8
Votos
PositivosNegativosTotal
202

Por ser posible creo que es posible. El objeto javascript que accede a la ventana padre es parent. Una vez acceddes a la ventana parent ya se trata de acceder al objeto que quieres recargar o a la función que quieres ejecutar.

Te comento de memoria. En la ventana padre tienes el update panel con un id (id=main). Ese udate panel creas una función que se encarga de realizar la recarga de datos (reload) Abres la ventana hija. En el submit de la ventana hija dices algo así como.

parent.main.reload();

en la funcion reload deberías dejar un tiempo de espera para permitir que las acciones de la base de datos se realizen,por ejemplo usando timeout o la función de retardo que prefieras.

Espero que esto te sirva de ayuda.

Cerrar

Hace 1 año

Chokisoft
Votos
PositivosNegativosTotal
000

Hola, y como quedarian estonces lo ejemplos anteriores si yo lo que deseo refrescar es un Grid que esta dentro del Update Panel

Cerrar

Tu respuesta

Confirmación

Cerrar

Si sales ahora, perderás los cambios. ¿Estás seguro de querer salir?

Para participar en Babelias, debes estar convenientemente validado. Si ya eres usuario inicia sesión, si no lo eres, te puedes registrar.

Dar una respuesta

Trata de ser descriptivo, usa al menos 25 caracteres