Visualizza la versione completa : Problemi sul reload della pagina
fallimento
06-06-2007, 13:59
Buongiorno a tutti.
ho questa situazione:
una pagina, contenete una datagrid, apre, sul click dell'EditCommand della datagrid, un popup di modifica utilizzando this.RegisterStartupScript("","<script>window.open(' ... etc etc.
Quando ho fatto le dovute modifiche nel popup, sull'unload dello stesso, lancio un window.opener.location.reload(true): le modifche nella datagrid vengono riportate...il problema è che mi si riapre il popup...all'infinito!!!!
Come posso fare a far aprire il popup solo sul click del bottone e non sul "reload" della pagina???
Grazie mille.
(spero che sia il forum giusto...ero indeciso! :P )
prova ad impostare un breakpoint nell'evento RowCommand e vedi se tutte le volte richiama quel metodo al reload della pagina
fallimento
07-06-2007, 13:25
Se per rowcommand intendi dire EditCommand, allora si...viene richiamato ogni volta...
fallimento
07-06-2007, 13:43
non so se esiste una soluzione + elegante, cmq...
if (Session["timeout"] == "" || Session["timeout"] == null)
{
this.RegisterStartupScript("","<script>window.open (pagina.aspx','','height=450, width=370')</script>");
}
else
{
Session["timeout"] = "";
}
...poi nel popup sul click del "salva e chiudi" assegno alla session un valore qualsiasi...
prova ad utilizzare
VB-
If Not Pagina.IsStartupScriptRegistered("nomescript")) Then
Pagina.RegisterStartupScript("nomescript","<script>window.open (pagina.aspx','','height=450, width=370')</script>")
End If
pietro09
07-06-2007, 14:29
La domanda è provocatoria, ma chiedo: che senso ha cliccare, richiamare la pagina server che mi restituisce un comando javascript? Non è meglio eliminare la chiamata al server è usare direttamente la window.open?
2) ma funziona? a me risulta che i popup non si possano aprire in quel modo, con i browser moderni e con le impostazioni predefinite. :master:
:ciauz:
fallimento
08-06-2007, 13:20
grazie per il suggerimento djciko, ma non funziona... :mame:
pietro09...anche per me sarebbe molto comodo, ma non credo si possa impostare una datagrid in modo da creare dinamicamente lo script js in modo che ci sia, nell'indirizzo di apertura della pagina, anche l'id del record da modificare...se c'è ben lieto di applicarlo! :unz:
...e cmq funziona...almeno, sembrerebbe.... :)
Originariamente inviato da fallimento
grazie per il suggerimento djciko, ma non funziona... :mame:
pietro09...anche per me sarebbe molto comodo, ma non credo si possa impostare una datagrid in modo da creare dinamicamente lo script js in modo che ci sia, nell'indirizzo di apertura della pagina, anche l'id del record da modificare...se c'è ben lieto di applicarlo! :unz:
...e cmq funziona...almeno, sembrerebbe.... :)
Certo che c'e' il modo.
Nell'evento -ItemDataBound- del Datagrid, cerchi -FindControl("idbotton")- un bottone in una colonna da te aggiunta (colonna non di tipo EditCommandColumn, ma TemplateColumn).
Una volta ottenuta l'istanza del bottone, con
idBottone.Attributes.Add("onclick", script)
puoi aggiungervi quello che vuoi al click (scrivendo quello che vuoi nella variabile "script", compresi elementi della sorgente, con e.item.dataitem("nomecampo")).
Ma comunque ho perso il filo, non vedo cosa c'entri con il problema iniziale, della popup persistente... :(
pietro09
08-06-2007, 19:00
Originariamente inviato da fallimento
pietro09...anche per me sarebbe molto comodo, ma non credo si possa impostare una datagrid in modo da creare dinamicamente lo script js in modo che ci sia, nell'indirizzo di apertura della pagina, anche l'id del record da modificare...se c'è ben lieto di applicarlo! :unz:
...e cmq funziona...almeno, sembrerebbe.... :)
Allora, riepilogando, detto in termini chiari, per non esserci equivoci, il problema nasce da una cattiva impostazione che dovresti correggere, non come ti suggerisco io, ma come si suggerisce in letteratura (ps. Dino Esposito). E poi, non va lo stesso, perchè le popup, con i browser moderni, IE7, Firefox2, Opera9, non si aprono come vuoi fare tu. Se a te si apre è perchè non usi questi browser, non hai almeno windows xp sp2, lavori in intranet, hai diminuito le impostazioni predefinite del browser.
:ciauz: :ciauz: :ciauz: