Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    perdita di dati per a causa dell'autopostback

    aiuto raga...sn in crisi....

    ho creato una pagina cn due dropdownlist che si filtrano facendo autopost back...xò all'interno della pagina ho una variabile che deve contenere una somma, ma questa variabile perde il suo valore ogni volta ke faccio l'autopostback come posso evitare qs?

    vi posto anche la pagina chissà vi può essere d'aiuto a voi e soprattutto a me

    codice:
     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
             
            If (User.Identity.Name <> "") Then
                temp = User.Identity.Name
                name = temp.Substring(0, temp.IndexOf(":"))
                role = temp.Substring(temp.IndexOf(":") + 1)
            End If
    	      
            str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("data/bijou.mdb")
            cn = New OleDbConnection(str)
            cn.Open()
            sql = "SELECT * FROM TipoPietanze"
            cmd = New OleDbCommand(sql, cn)
                  
            Try
                reader = cmd.ExecuteReader()
                
                If Drop1.Items.Count = Nothing Then
                    While reader.Read
                        Drop1.Items.Add(reader.Item(0))
                        Drop1.Items.Item(0).Selected = False
                    End While
                End If
                compare = Drop1.SelectedValue
                sql2 = "SELECT * FROM Pietanze WHERE tipo=@compare"
                cmd2 = New OleDbCommand(sql2, cn)
                cmd2.Parameters.Add("@compare", compare)
                reader2 = cmd2.ExecuteReader()
                If Drop2.Items.Count = Nothing Then
                    While reader2.Read
                        Drop2.Items.Add(reader2.Item(0))
                    End While
                    
                    'rivedere da qui
                    
                    i = i + 1
                    ' totale = 0
                    If (User.Identity.IsAuthenticated) Then
                        last = "SELECT MAX (Nordine) FROM Ordini"
                        cmdlast = New OleDbCommand(last, cn)
                        readlast = cmdlast.ExecuteReader
                        While readlast.Read
                            ord = "INSERT INTO Ordini (Nordine,Utente) VALUES (?,?)"
                            cmdord = New OleDbCommand(ord, cn)
                            cmdord.Parameters.Add("@Nordine", readlast.Item(0) + 1)
                            cmdord.Parameters.Add("@Utente", name)
                            readord = cmdord.ExecuteReader()
                        End While
                        
                    End If
                    
                    'a qui
                    
                End If
                If Drop2.AutoPostBack = True Then
                    If reader2.Read Then
                        nome.InnerHtml = reader2.Item(0)
                        descrizione.InnerHtml = reader2.Item(1)
                        prezzo.InnerHtml = reader2.Item(2) & "&euro; "
                        prezzop = reader2.Item(2)
                        'totale = totale + prezzop
                        img.InnerHtml = "<img src=GetThumbnailImage.aspx?FileName=" + reader2.Item(5) + "&ScaleFactor=35 border=0>"
                        
                    End If
                              
                End If
            Catch Ex As System.Data.OleDb.OleDbException
                Response.Write(Ex.Message & " " & Ex.StackTrace)
                cmd.Connection.Close()
                cmd2.Connection.Close()
                cmdlast.Connection.Close()
            End Try
           
        End Sub
        
        Sub cambia(ByVal sender As System.Object, ByVal e As System.EventArgs)
            
            compare2 = Drop1.SelectedValue
            sql3 = "SELECT nome FROM Pietanze WHERE tipo = @compare2"
            cmd3 = New OleDbCommand(sql3, cn)
            cmd3.Parameters.Add("@compare2", compare2)
            read = cmd3.ExecuteReader()
            Drop2.Items.Clear()
            While read.Read
                Drop2.Items.Add(read.Item(0))
                Drop2.Items.Item(0).Selected = True
            End While
            
            cmd3.Connection.Close()
            
        End Sub
        
        Sub cambia2(ByVal sender As System.Object, ByVal e As System.EventArgs)
            
            compare3 = Drop2.SelectedValue
            sql4 = "SELECT * FROM Pietanze WHERE nome = @compare3"
            cmd4 = New OleDbCommand(sql4, cn)
            cmd4.Parameters.Add("@compare3", compare3)
            read2 = cmd4.ExecuteReader()
            While read2.Read
                nome.InnerHtml = read2.Item(0)
                descrizione.InnerHtml = read2.Item(1)
                prezzo.InnerHtml = read2.Item(2) & "&euro; "
                prezzop = read2.Item(2)
                img.InnerHtml = "<img src=GetThumbnailImage.aspx?FileName=" + read2.Item(5) + "&ScaleFactor=35 border=0>"
            End While
            cmd4.Connection.Close()
            
        End Sub
        
        Sub Ordina(ByVal sender As System.Object, ByVal e As System.EventArgs)
            
            Dim aggriga As String
            Dim cmdriga As OleDbCommand
            Dim readriga As OleDbDataReader
            
            If (Not User.Identity.IsAuthenticated) Then
                Response.Redirect("errore2.aspx")
            Else
                aggriga = "INSERT INTO RigaOrdine (nRiga, pietanza,nOrdine) VALUES (?,?,?)"
                cmdriga = New OleDbCommand(aggriga, cn)
                cmdriga.Parameters.Add("@nRiga", i + 1)
                cmdriga.Parameters.Add("@Pietanza", Drop2.SelectedValue)
                last = "SELECT MAX (Nordine) FROM Ordini"
                cmdlast = New OleDbCommand(last, cn)
                readlast = cmdlast.ExecuteReader
                While readlast.Read
                    cmdriga.Parameters.Add("@nOrdine", readlast.Item(0))
                End While
                readriga = cmdriga.ExecuteReader
                scontrino1.InnerHtml += "
    
    " & Drop2.SelectedValue & "</p>"
                scontrino2.InnerHtml += "
    
    € " & prezzop & "</p>"
                totale += prezzop
                i = i + 1
                importo.InnerHtml = "<tr><td align=center class=testo>TOTALE</td><td align=center> € " & totale & "</td></tr>"
               
            End If
        End Sub
        
        Sub Conferma(ByVal sender As System.Object, ByVal e As System.EventArgs)
            If (Not User.Identity.IsAuthenticated) Then
                Response.Redirect("errore2.aspx")
            Else
            
                Dim msgMail As MailMessage = New MailMessage()
                msgMail.To = "localhost"
                msgMail.Cc = name
                msgMail.From = name
                msgMail.Subject = "Bijoubari - Posta dal sito"
     
                msgMail.BodyFormat = MailFormat.Html
                Dim strBody As String
                strBody = "<html><body>Nome Utente:" & name & " 
    <table><tr><td>Pietanza:" & scontrino1.InnerHtml & "</td><td>Importo:" & scontrino2.InnerHtml & "</td></tr><tr><td colspan=2>Totale:€" & totale & "</td></tr></body></html>"
                msgMail.Body = strBody
     
                SmtpMail.Send(msgMail)
                
                Response.Redirect("mail.html")
            End If
      End Sub

    codice:
    <body bgcolor="#FFFFFF" leftmargin="0" background="immagini/ppw2_12.gif" topmargin="0" marginwidth="0" marginheight="0" onload="preloadImages();">
    
    
    	<form runat=server>
    		  <table  border="0" cellspacing="0" cellpadding="0" id="TABLE1" align=center language="javascript" onclick="return TABLE1_onclick()">
    		     <tr align=center>
    		         <td class=testo runat=server align=right style="height: 22px">Scegli il tipo di Pietanza: </td>
                     <td colspan="3" align=left><asp:DropDownList ID="Drop1" runat="server" AutoPostBack=true DataTextField="nome" DataValueField="nome" OnSelectedIndexChanged="cambia"></asp:DropDownList></td>
    		    </tr>
    		    
    		     <tr align=center>
    		         <td id="Td1" class=testo runat=server align=right style="height: 22px">Scegli la Pietanza:       </td>
                     <td colspan="3" align=left style="height: 22px"><asp:DropDownList ID="Drop2" runat="server" AutoPostBack=true DataTextField="nome" DataValueField="nome" OnSelectedIndexChanged ="cambia2"></asp:DropDownList></td>
    		     </tr>
    		     
                <tr>
                  <td valign="middle" class="testo" style="height: 26px"><div align="left">PIETANZA</div></td>
                  <td valign="middle" class="testo" style="height: 26px; width: 57px;"><div align="center">PREZZO</div></td>
                  <td width="60" valign="middle" class="testo" style="height: 26px"><div align="center">FOTO</div></td>
                  <td valign="middle" class="testo" style="height: 26px; width: 100px;"><div align="center">AGGIUNGI AL
    
                  VASSOIO </div></td>
                </tr>
                
                <tr>
                  <td height="25" valign="top" class="testo"><p id=nome class=testo runat=server></p><em id=descrizione class=testo runat=server>[/i]</td>
                  <td height="25" valign="middle" class="testo" style="width: 57px"><div id=prezzo align="center" runat=server></div></td>
                  <td height="25" valign="middle" class="testo"><div id=img runat=server align="center"></div></td>
                  <td valign="middle" class="testo" style="width: 100px"><div align="center">[img]immagini/vass_red.gif[/img]</div></td>
                </tr>          
              </table>     
             		  <table  border="0" cellspacing="0" cellpadding="0" id="TABLE2" align=center language="javascript" onclick="return TABLE1_onclick()" style="width: 350px">
             		  <div id=msg runat=server>
                <tr>
                <td class=testo valign=middle align=center>PIETANZA
                </td>
                <td class=testo valign=middle align=center>IMPORTO
                </td>
                </tr>
              <tr>
              <td align=center>
              <div id=scontrino1 runat=server></div>
              </td>
              <td align=center><div id=scontrino2 runat=server></div></td>
              </tr>
              <tr>
              <td colspan=4>
              <div id=importo runat=server></div>
              </td>
              </tr></div>
              </table><p class=testo align=center>Conferma</p>
              
    <asp:label id="lblStatus" Runat="server" EnableViewState="False"></asp:label>
              
              
            
    
        </form>		 
    	
    </body>

    la variabile in questione è totale



    grazie ciau

  2. #2
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    Le applicazioni web non hanno stato. Se vuoi conservare il valore di una variabile attraverso il postback puoi salvarla in sessione o in un campo nascosto o nella query string.

  3. #3
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,584
    Originariamente inviato da edaje
    Le applicazioni web non hanno stato. Se vuoi conservare il valore di una variabile attraverso il postback puoi salvarla in sessione o in un campo nascosto o nella query string.
    vuoi dire che anche io potrei avere lo stesso problema?
    http://forum.html.it/forum/showthrea...hreadid=948029
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  4. #4
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    Se in una pagina il dropdownlist non mantiene l'indice attraverso il post back è un altro problema. Se capisco bene la variabile totale è un qualche cosa che ottieni attraverso calcoli. O questi calcoli li esegui ad ogni postback oppure conservi il valore come ti ho detto prima

  5. #5
    se volessi usare un campo nascosto?
    scusa...ma sn newbie in asp.net....

    tnx

  6. #6
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    vai qui

  7. #7


    beh c'è scritto praticamente nulla!

  8. #8

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da 9178angel


    beh c'è scritto praticamente nulla!

    Mah! quel praticamente nulla lo hai letto?
    Pietro

  10. #10
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    appunto

    RegisterHiddenField("Mese", "Ottobre");
    se vuoi più codice me lo invento !!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.