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>