Domanda

Prima di tutto, Buon Natale a tutti voi:)

Ho un blog, dove le persone possono fare commenti. Ora ho deciso di mettere il file "writecomments.aspx" in un popup-window GreyBox. Funziona, ma voglio chiudere la finestra da codebehind (o JavaScript) dopo il commento è stato scritto. E poi voglio aggiornare la pagina del blog (la pagina padre) per mostrare il nuovo commento.

Questo è il codice che apre la pagina GreyBox (writecomments.aspx):

<a href='WriteComments.aspx?BlogId=<%# DataBinder.Eval(Container, "DataItem.id") %>' rel="gb_page_center[500, 500]">Skriv kommentar</a>

Nel file writecomments.aspx, devo solo 2 caselle di testo e pulsante 1 (save-pulsante). Come posso fare la finestra GreyBox chiudersi, e quindi in qualche modo aggiornare la blog.aspx? O forse solo un UpdatePanel specifica per i commenti attuali?

Modifica Ho ottenuto che funziona, ho dovuto mettere questo codice nel codebehind, dopo il db-insert: Page.ClientScript.RegisterStartupScript(this.GetType(), "close", "parent.parent.GB_hide();", true); E per il refresh della pagina padre, ho modificato il file gb_scripts.js sulla linea 12 da false a true: this.reload_on_close=true;

Buon Natale! :)

modificare di nuovo A dire il vero, ho modificato un po ', quindi, ho messo il file gb_scripts.js torna al suo stato di default, e ho appena appena la linea followig del codice nel file WriteComments.aspx codebehind, subito dopo il db-inserto:

Page.ClientScript.RegisterStartupScript(this.GetType(), "close", "parent.parent.window.location.reload();parent.parent.GB_hide();", true);

Ora, la GreyBox è di chiusura, e quindi, la pagina del blog è rinfrescante, proprio come voglio:)

È stato utile?

Soluzione 4

Ho avuto la funzione di chiusura di lavoro! Questo è il codice ho dovuto usare: Page.ClientScript.RegisterStartupScript (this.GetType (), "vicino", "parent.parent.GB_hide ();", true); Ora dovrò solo per aggiornare la pagina genitore qualche modo:)

Altri suggerimenti

Come io sto cercando un comportamento simile, questo sta lavorando nel mio caso: http://www.phpfreaks.com/forums/index.php?topic=235378.0

"Motivi passano attraverso questo file (gb_scripts.js) alla riga numero 12 cambiamento 'this.reload_on_close = false;' a 'this.reload_on_close = true' e numero di linea 67 cambiamento 'window.location.reload ();' a 'window.location.reload (true);' e fatto «Ultima modifica: 20 Dicembre 2010 04:38:42 da shashidharkumar» "

Una volta che il commento è stato salvato con successo a DB, rendere il seguente javascript nella pagina:

window.opener.reload();
window.close();

Nelle tue WriteComments.aspx.cs una volta che la Save è successo aggiungere il codice qui sotto per rendere il javascript nel codice HTML:

if (!IsClientScriptBlockRegistered("CloseMe"))
{
        String cstext1 = "<script type=\"text/javascript\">" +
            "window.opener.refresh(); window.close();</" + "script>";
        RegisterStartupScript("CloseMe", cstext1 );
}

Questa è la ben spiegato RISPOSTA con semplici passaggi: http://www.codeofaninja.com/2010/12/how-to-refresh-greybox-parent-page.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top