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) & "€ "
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) & "€ "
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