273 messaggi dal 01 aprile 2004
Ciao, nella mia pagina salvo le variabili nel ViewState in questo modo :

ViewState["CodAut"] = CODAUT;
ViewState["Modell"] = Modell.Text = dr.GetString(1);
ViewState["Targa"] = Targa.Text = dr.GetString(2);

Poi da questa pagina Apro un popup per l'inserimento di altri dati, quando torno dal popup eseguo la opener:

Response.Write("<script>opener.location.href=\"Contratto.aspx?NewCon="+Request.Params["NewCon"]+"&CodLoc="+NEWCODLOC+"&AnCont="+Request.Params["AnCont"].Trim()+"&NmCont="+Request.Params["NmCont"].Trim()+"\";JavaScript:top.close()</script>");

A queto punto torno sulla prima pagina ma entro nella load, qui arriva il problema :

devo presentare i dati che ho salvato nel viewstate, ma il viewstate risulta vuoto !
devo salvarlo da qualche parte ???

grazie

Ciao,
DNZ
20 messaggi dal 21 marzo 2006
il problema è che la pagina opener non subisce semplicemente un postback ma un vero e proprio redirect (modifichi l'href del location, come se ci caricassi un'altra pagina). Il viewstate viene mantenuto attraverso i postback, non nei passaggi di pagina

...per me la "Corazzata Potiomkin" è una cagata pazzesca!
273 messaggi dal 01 aprile 2004
Infatti, come faccio a mantenere i dati allora, con delle session, nella cache?
Modificato da marcodonza il 22 marzo 2006 14.15 -

Ciao,
DNZ
20 messaggi dal 21 marzo 2006
se ti è indispensabile eseguire il redirect allora ti tocca abbandonare il viewstate in favore della session. Se i dati da passare non sono tanti però potresti pensare di passarli lato client. Metti dei campi nascosti nella opener e nell'unload della popup li riempi con i dati della popup stessa. Così non solo non hai un redirect ma nemmeno un postback sulla pagina principale

...per me la "Corazzata Potiomkin" è una cagata pazzesca!
273 messaggi dal 01 aprile 2004
mi fai un esempio per favore !

 [

Ciao,
DNZ
20 messaggi dal 21 marzo 2006
pagina chiamante:

<input type="hidden" id="hidField_1">


popup:

<body onunload="passaValori()">


...

<script language="javascript">
function passaValori()
{
   window.opener.document.getElementById("hidField_1").value="<%=Value_1%>";
}
</script>


dove Value_1 è una property pubblica lato server popolata durante l'elaborazione con il dato che ti interessa.

Puoi usare le property pubbliche per passare dati alla pagina come si faceva in asp ( <%=valore%> ). Usando lo stesso meccanismo puoi risolvere anche eventuali problemi legati al non sapere a priori l'id del controllo sulla opener.

...per me la "Corazzata Potiomkin" è una cagata pazzesca!
273 messaggi dal 01 aprile 2004
Non va bene, il dato che mi passa il popup devo metterlo a video nella principale ! in che funzione lo faccio?
Prima con la opener mi rientrava nella load della principale e mettevo a video i valori.

Ciao,
DNZ
20 messaggi dal 21 marzo 2006
beh, lo mettrai a video impostando la proprietà di un qualche controllo no? invece di valorizzare il value della textbox hidden valorizza il text o chi per lui (innerText, InnerHTML) del tuo controllo visibile.

...per me la "Corazzata Potiomkin" è una cagata pazzesca!

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.