17 messaggi dal 29 marzo 2008
Ciao tutti,
scrivo perchè ho il seguente problema:
ho una pagina che mi apre una finestra di popu tramite il comando javascript windows.open richiamato da codebehind in C#.
Il problema è che, dopo aver finito di compilare dei form nella finestra di popup ed averla chiusa tramite un bottone che richiama una funzione window.close, voglio che la pagina originale si aggiorni con i nuovi dati immessi.
Come faccio a far si che la chiusura del popup faccia partire una funzione nella pagina originaria?
Specifico che uso Visual web Developer con C#.
Grazie!
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
Da una popup puoi accedere al DOM della pagina "madre" utilizzando window.opener, quindi ad esempio puoi ricaricare la pagina con:
getnorun(window.opener.location.href='paginamadre.aspx';void(0)");

oppure eseguire qualunque altra funzione Javascript.
Modificato da novecento il 11 aprile 2008 19.48 -

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer
17 messaggi dal 29 marzo 2008
Ricaricare la pagina sarebbe una cosa perfetta!
Però ho provato ad eseguire il codice che mi hai passato, ma non funziona, sai mica dirmi dove sbaglio?
All'interno di una funzione in C# della pagina popup ho scritto:
string Script_1 = "getnorun(window.opener.location.href='ssi cliente.aspx';void(0));";
string MyKey1 = "KeyScript_1";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), MyKey1, Script_1, true);

che è il metodo standard che uso per eseguire funzioni javascrpit da codice(e quindi anche per aprire la finestra di popup)solo che non succede niente, la pagina madre non viene ricaricata..
Suggerimenti?
Grazie ciao!
17 messaggi dal 29 marzo 2008
Come non detto, ce l'ho fatta..
La pagina madre effettua effettivamente il refresh..solo che mi si è presentato un altro problema.
L'evento che scatena l'apertura del popup è l'inserimento di nuovo testo in una combobox..quindi quando avviene il ricaricamento, mi viene segnalato che la pagina contiene POSTDATA e mi viene chiesto se voglio effettuare di nuovo l'invio dei dati..come faccio a ignorare questo messaggio?
Per completezza posto il codice che ho usato, magari è li' il problema..

string Script_1 = "window.opener.location.reload();window.close();";
string MyKey = "KeyScript_1";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), MyKey, Script_1, true);
Prima dalla pagina madre a quella figlia passavo un parametro col metodo post, ora ho evitato la cosa usando una variabile di sessione, ma il problema persiste..quali sono i dati che vengono inviati?
Grazie ciao!
Modificato da kontax il 11 aprile 2008 22.16 -
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
Con la funzione window.opener.location.reload() forzi la pagina a fare refresh come se premessi F5, quindi se ci sono dei dati da inviare il browser ti fa quella richiesta; se invece usi window.opener.location.href è come se premessi invio dopo aver digitato l'indirizzo ed accedessi alla pagina per la prima volta.
Prova a testare solo il codice Javascript, quando sarai soddisfatto del funzionamento inseriscilo nel codice C# come stai correttamente facendo.

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer
17 messaggi dal 29 marzo 2008
Grazie della risposta!Nel frattempo ho modificato il mio post precedente specificando che prima c'era un passaggio di parametro che ho eliminato, senza però cambiare niente..
Pensavo che il problema fosse inerente a quello, ma dalla tua risposta sembra di no..
Ok grazie allora provo a usare il codice che mi hai dato..una cosa, getnorun è una funzione javascript? a cosa serve?
Grazie mille per la disponibilità!
17 messaggi dal 29 marzo 2008
Perfetto,ce l'ho fatta, ha funzionato alla grande!
Grazie ancora per la disponibilità e la competenza, ciao!
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
..una cosa, getnorun è una funzione javascript? a cosa serve?

errore mio  , getnorun non è una funzione Javascript, ho solo incollato troppo codice, puoi ignorarlo

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.