Ciao a tutti.
Mi sono imbattuto in un problema apparentemente stupido, ma dal quale non riesco ad uscirne.
Ho due dropdownlist, la prima contiene le provincie, la seconda filtra i comuni in base al valore della prima.
se cambio la provincia e immetto il comune, va tutto bene, quindi non ho problemi.
Se apro un file per modificarlo, come vedete viene assegnata la provincia memorizzata nel db alla drop..., e quindi, di conseguenza viene filtrata la drop dei comuni.
Ora accade questo però, se 'senza cambiare la provincia', scelgo un comune tra quelli filtrati, quando vado a salvare, non tiene conto della mia scelta e memorizza il valore del primo comune in elenco.
qui sotto ho riportato il codice vb.net e html.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("mdb-database/dati.mdb"))
If Not IsPostBack Then
cn.Open()
cmd = New OleDbCommand("select * from Province ORDER BY Capoluogo", cn)
Provincia.DataSource = cmd.ExecuteReader()
Provincia.DataTextField = "Capoluogo"
Provincia.DataValueField = "IDProvincia"
Provincia.DataBind()
Provincia.Dispose()
dst = New DataSet
dap = New OleDbDataAdapter("SELECT * FROM Utenti WHERE IDUtente=" & Session("IDUtente"), cn)
dap.Fill(dst, "Utenti")
With dst.Tables("Utenti").Rows(0)
Provincia.SelectedValue = .Item("IDProvincia")
cn.Close()
AggiornaComune(.Item("IDProvincia"))
Comune.SelectedValue = .Item("IDComune")
cn.Close()
end if
End Sub
Sub Provincia_Change(ByVal sender As Object, ByVal e As System.EventArgs) Handles Provincia.SelectedIndexChanged
AggiornaComune(Provincia.SelectedValue)
End Sub
Sub AggiornaComune(ByVal x As Integer)
Comune.Enabled = True
Comune.Items.Clear()
cn.Open()
cmd = New OleDbCommand("select * from QueryComuni WHERE IDProvincia=" & x & " ORDER BY Comune", cn)
Comune.DataSource = cmd.ExecuteReader()
Comune.DataTextField = "Comune"
Comune.DataValueField = "IDComune"
Comune.DataBind()
Comune.Dispose()
Comune.Enabled = True
cn.Close()
End Sub
Protected Sub Conferma_Click(ByVal sender As Object, ByVal e As System.EventArgs)
cn.Open()
dst = New DataSet
dap = New OleDbDataAdapter("SELECT * FROM Utenti WHERE email='" & fApici(Email.Text) & "'", cn)
dap.Fill(dst, "Cuochi")
If Cognome.Text = "" Then msg.Text = "Manca il (COGNOME)" : cn.Close() : Exit Sub
If Nome.Text = "" Then msg.Text = "Manca il (NOME)" : cn.Close() : Exit Sub
If Password.Text = "" Then Msg.Text = "Manca la (PASSWORD)" : cn.Close() : Exit Sub
If Request("Tipo") <> "Modifica" Then
If Email.Text = "" Then Msg.Text = "Manca la (E-MAIL)" : cn.Close() : Exit Sub
If (dst.Tables("Cuochi").Rows.Count) = 1 Then
Msg.Text = "email già esistente!"
cn.Close()
Exit Sub
End If
sql = "INSERT INTO Utenti (IDProvincia,IDComune) " & _
"VALUES (" & _
"" & Provincia.SelectedValue & "," & _
"" & Comune.SelectedValue & ")"
cmd = New OleDbCommand(sql, cn)
cmd.ExecuteNonQuery()
cn.Close()
End Sub
<tr>
<td>Provincia:</td>
<td>
<asp:DropDownList ID="Provincia" runat="server" Width="204"
AutoPostBack="true" onselectedIndexChanged="Provincia_Change" >
</asp:DropDownList>
</td>
</tr>
<tr>
<td>Città:</td>
<td>
<asp:DropDownList ID="Comune" runat="server" Width="204" >
</asp:DropDownList>
</td>
</tr>