Trasferire i dati di una WebForm all'interno di un'altra rappresenta uno dei problemi più diffusi, specie perchè con Classic ASP siamo stati abiutati a suddividere logicamente il flusso di invio di una form di dati in due pagine diverse.
A parte questa ragione, questa tecnica può avere senso in ambiti differenti, ad esempio quando si vuole sfruttare una certa logica all'interno di due diverse form.
Per portare a termine il nostro progetto dovremo creare due files e sfruttare Server.Transfer per inviare il flusso alla seconda WebForm. Sfruttando Context.Items, già analizzato nello script #478, è possibile inserire i dati prelevati dalla WebForm in questa apposita collezione:
<script runat="server" language="C#">
void Transfer (Object sender, EventArgs e) {
// salviamo le informazioni nel contesto
Context.Items["Nome"] = Nome.Text;
Context.Items["Cognome"] = Cognome.Text;
Context.Items["Mail"] = Mail.Text;
// trasferiamo il controllo all'altra pagina
Server.Transfer("post2.aspx");
}
</script>
<form runat="server">
Nome: <asp:textbox ID="Nome" runat="server"/><br>
Cognome: <asp:textbox ID="Cognome" runat="server"/><br>
E-mail: <asp:textbox ID="Mail" runat="server"/><br>
<asp:button OnClick="Transfer" Text="Procedi" runat="server" />
</form>Sarà poi necessario definire una seconda pagina, chiamata Post2.aspx, in cui inseriremo questo codice:
<SCRIPT RUNAT="SERVER" Language="C#">
void Page_Load() {
// recuperiamo i dati attraverso Context.Items
lblNome.Text = Context.Items["Nome"].ToString();
lblCognome.Text = Context.Items["Cognome"].ToString();
lblMail.Text = Context.Items["Mail"].ToString();
}
</SCRIPT>
<p>Grazie per aver completato la form. Ci hai inviato i seguenti dati:</p>
Nome: <asp:label id="lblNome" runat="server"/><br>
Cognome: <asp:label id="lblCognome" runat="server"/><br>
E-mail: <asp:label id="lblMail" runat="server"/><br>A questo punto le due pagine concorreranno a formare un'unica istanza e quindi condivideranno lo stesso contesto di esecuzione, cosa che rende possibile utilizzare la stessa collezione Items.
Per affrofondimenti si veda:
#478 - Condividere una variabile all'interno degli oggetti della pagina ASP.NET
http://www.aspitalia.com/liste/usag/script.aspx?ID=478
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
E se volessi fare la stessa cosa usando Visual Basic? Come faccio?Altra cosa...E? possibile passare i dati a 3/4 pagine diverse?[Edit by="beke82" on="...
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.









Stampa
Download 




Ciao Daniele, come al solito solo tu mi puoi aiutare:Nella seguente pagina c'è un articolo molto dettagliato per usare server.transfer: [url]http://...
Continua »»» | Rispondi »»»