• User Attivo

    Passare variabili tra 2 form

    Ho un form (form1) che prende i dati dall'utente.
    Poi c'è un pulsante preview che se premuto apre un'altra pagina (pag1) che visualizza in anteprima i dati immessi dall'utente. Sapreste spiegarmi come fare?


  • Super User

    non sei stato molto chiaro nella spiegazione, servirebbero maggiori informazioni.


  • User

    @freebreathe said:

    Ho un form (form1) che prende i dati dall'utente.
    Poi c'è un pulsante preview che se premuto apre un'altra pagina (pag1) che visualizza in anteprima i dati immessi dall'utente. Sapreste spiegarmi come fare?

    Se stai usando asp.net, e non sapendo quali e quanti dati sono, visto che non l'hai specificato, puoi usare l'oggetto Session, in questo modo:

    Nel form 1 scrivi qualcosa del tipo

    this.Session["dato1"]=this.textBoxDato1.Text;

    nel form 2 scrivi

    this.previewLiteral.Text=(string)this.Session["dato1"];

    Dentro l'oggetto Session puoi inserire qualunque tipo di dati: interi, stringhe, classi fatte da te. Basta usare il corretto cast ( string in questo caso) quando "estrai" l'oggetto da session.

    Se i dati sono stringhe e non troppo lunghe, puoi usare l'oggetto Request in questo modo:

    Premendo il pulsante preview dentro al Form 1, devi far aprire una pagina del tipo ht tp://miosito/form2.aspx?dato1=valore1&dato2=valore2

    e nel form 2 scrivi:

    this.previewLiteral.Text=this.Request["dato1"];

    Spero fosse quello che ti serviva.

    Ciao


  • User Attivo

    Ok.
    Allora dato questo form come faccio a passare le variabili Autore, Qualifica e Titolo alla pagina 'PWopinione.aspx'?

    
    <asp:FormView ID="FormView1" runat="server" DataKeyNames="idRubrica" DataSourceID="odsInserisciRubrica" OnInserted="odsArticolo_Inserted" OnDataBound="FormView1_DataBound"> 
               <InsertItemTemplate> 
                   <span class="labelspan">Autore</span> 
                   <asp:TextBox ID="nomeAutoreTextBox" runat="server" Text='<%# Bind("nomeAutore") %>' CssClass="input-text"></asp:TextBox><br /> 
     
                   <span class="labelspan">Qualifica</span> 
                   <asp:TextBox ID="qualificaAutoreTextBox" runat="server" Text='<%# Bind("qualificaAutore") %>' CssClass="input-text"></asp:TextBox><br /> 
     
                   <span class="labelspan">Titolo</span> 
                   <asp:TextBox ID="titoloArticoloTextBox" runat="server" Text='<%# Bind("titoloArticolo") %>' CssClass="input-text"></asp:TextBox><br /> 
     
     
                   <a class="green" href="javascript: void(0)" onclick="popup('PWopinione.aspx')">preview 
                       sito</a> 
     
                  </InsertItemTemplate> 
               </asp:FormView> 
     
    
    

  • User

    lo puoi fare come ti ha spiegato sopra machiavellino,
    in poche parole vai nella pagina del code behind e (a seconda del linguaggio in cui stai programmando) scrivi:

    Session["Autore"] = nomeAutoreTextBox.Text
    Session["Qualifica"] = qualificaAutoreTextBox.Text
    Session["Titolo"] = titoloArticoloTextBox.Text

    Poi nella pagina in cui li devi utilizzare fai una cosa del tipo:
    If (Session["Autore"] != null)
    {
    String autore = Session["Autore"].ToString()
    }

    Così ti salvi nella variabile autore il valore di nomeAutoreTextBox che avevi salvato in sessione e ripeti il codice per le altre variabili:

    Nb. la sintassi che ho scritto è in c# se ti serve in vb cambia poco comunque è così:
    Session("Autore") = nomeAutoreTextBox.Text
    If Session("Autore") <> Nothing Then
    Dim autore as String = Session("Autore").ToString()End If


  • User Attivo

    Così è chiarissimo. Grazie mille 😉