Ciao a tutti!
Ho una pagina dove viene visualizzata un anagrafica di una azienda, tramite un id che passo nel link, visualizzo i dati dell'azienda
In questa pagina nel load mi carico i dati e li scrivo nelle varie textbox.
Sono presenti anche 3 dropdownlist per regione, provincia, comune; sono concatenate dove se si seleziona una determinata regione, nella dropdown delle province si popolerà con le rispettive province, stessa cosa per i comuni.
Quando eseguo per la prima volta la pagina mi popola coirrettamente le text e le dropdown, ma se provo a cambiare la regione, la pagina si ricarica (perchè deve popolare la dropdown delle province) e seleziona la regione salvata nel db e non quella appena selezionata.
Ecco il codice di modifica_anagrafica.aspx
codice:
<fieldset class="register">
<legend>Informazioni account</legend>
<table border="0" cellpadding="3">
<tr>
<td>
<asp:Label ID="Label1" runat="server" AssociatedControlID="Ragione_sociale" Width="150px">Reagione Sociale*:</asp:Label>
</td>
<td>
<asp:TextBox ID="Ragione_sociale" runat="server" Width="350px" MaxLength="200"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="Ragione_sociale"
CssClass="failureNotification" ErrorMessage="La Ragione Sociale è obbligatoria." ToolTip="La Ragione Sociale è obbligatoria." ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label2" runat="server" AssociatedControlID="Forma_giuridica">Forma giuridica*:</asp:Label>
</td>
<td>
<asp:DropDownList ID="Forma_giuridica" runat="server"
DataSourceID="SqlDataSource1" DataTextField="forma" DataValueField="id" Width="350px">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [FORME_GIURIDICHE] ORDER BY [forma]">
</asp:SqlDataSource>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="Forma_giuridica"
CssClass="failureNotification" ErrorMessage="La Forma giuridica è obbligatoria."
ToolTip="La Forma giuridica è obbligatoria." ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label3" runat="server" AssociatedControlID="Codice_fiscale">Codice fiscale*:</asp:Label>
</td>
<td>
<asp:TextBox ID="Codice_Fiscale" runat="server" Width="350px" MaxLength="50"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="Codice_fiscale"
CssClass="failureNotification" ErrorMessage="Il Codcie fiscale è obbligatorio."
ToolTip="Il Codice fiscale è obbligatorio." ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label4" runat="server" AssociatedControlID="Codice_fiscale">Regione:</asp:Label>
</td>
<td>
<asp:DropDownList ID="Regione" runat="server" DataSourceID="SqlDataSource2" DataTextField="regione" DataValueField="id"
Width="350px" AutoPostBack="true" AppendDataBoundItems="true">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [REGIONI] ORDER BY [regione]">
</asp:SqlDataSource>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label5" runat="server" AssociatedControlID="Provincia">Provincia:</asp:Label>
</td>
<td>
<asp:DropDownList ID="Provincia" runat="server" DataSourceID="SqlDataSource3"
DataTextField="provincia" DataValueField="id" AutoPostBack="true" AppendDataBoundItems="true"
Width="350px">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource3" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [PROVINCIE] WHERE n_regione=@regione ORDER BY [provincia]">
<SelectParameters>
<asp:ControlParameter Name="regione"
ControlID="Regione"
PropertyName="SelectedValue"/>
</SelectParameters>
</asp:SqlDataSource>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label6" runat="server" AssociatedControlID="Comune">Comune*:</asp:Label>
</td>
<td>
<asp:DropDownList ID="Comune" runat="server" DataSourceID="SqlDataSource4"
DataTextField="comune" DataValueField="id" Width="350px" AppendDataBoundItems="true">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource4" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [COMUNI] WHERE n_provincia=@provincia ORDER BY [comune]">
<SelectParameters>
<asp:ControlParameter Name="provincia"
ControlID="Provincia"
PropertyName="SelectedValue"/>
</SelectParameters>
</asp:SqlDataSource>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="Comune"
CssClass="failureNotification" ErrorMessage="Il Comune è obbligatorio."
ToolTip="Il Comune è obbligatorio." ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label7" runat="server" AssociatedControlID="Indirizzo">Indirizzo sede legale*:</asp:Label>
</td>
<td>
<asp:TextBox ID="Indirizzo" runat="server" Width="350px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="Indirizzo"
CssClass="failureNotification" ErrorMessage="L'Indirizzo della sede legale è obbligatorio."
ToolTip="L'Indirizzo della sede legale è obbligatorio." ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label8" runat="server" AssociatedControlID="Email">Email*:</asp:Label>
</td>
<td>
<asp:TextBox ID="Email" runat="server" Width="350px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ControlToValidate="Email"
CssClass="failureNotification" ErrorMessage="Email obbligatoria."
ToolTip="Email obbligatoria." ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="Email"
CssClass="failureNotification" ErrorMessage="Email non corretta." ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
ToolTip="Email non corretta." ValidationGroup="LoginUserValidationGroup">*</asp:RegularExpressionValidator >
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label9" runat="server" AssociatedControlID="Note">Note:</asp:Label>
</td>
<td>
<asp:TextBox ID="Note" runat="server" Width="350px" TextMode="MultiLine"
Height="163px"></asp:TextBox>
</td>
</tr>
</table>
</fieldset>
<div class="submitButton">
<asp:Button ID="Button1" runat="server" Text="Annulla"
PostBackUrl="~/reserved/Anagrafiche.aspx" />
<asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Salva" ValidationGroup="LoginUserValidationGroup"
Width="60px" />
</div>
Ecco il codice di modifica_anagrafica.aspx.vb
codice:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
indice = Request.QueryString("id")
'CARICO I DATI DELL'AZIENDA SELEZIONATA
Dim SQL As String
Dim disattivato As Boolean = True
SQL = "SELECT * FROM AZIENDE WHERE id=@id;"
Dim cmd As SqlCommand
cmd = New SqlCommand(SQL, New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ToString))
Try
With cmd.Parameters
.Add("@id", SqlDbType.NVarChar, 50)
End With
cmd.Parameters("@id").Value = indice
'APRE LA CONNESSIONE
cmd.Connection.Open()
'ESEGUE NLA QUERY, RESTITUISCE UN OGGETTO SqlDataReader
Dim dr As SqlDataReader = (cmd.ExecuteReader(CommandBehavior.CloseConnection))
If dr.HasRows Then
'si sposta ciclicamente attraverso i record e visualizza i valori.
Do While dr.Read
Ragione_sociale.Text = dr("ragione_sociale")
Codice_Fiscale.Text = dr("codice_fiscale")
If IsDBNull(dr("n_forma_giuridica")) Then
Forma_giuridica.SelectedValue = 1
Else
Forma_giuridica.SelectedValue = dr("n_forma_giuridica")
End If
If IsDBNull(dr("n_regione")) Then
Regione.SelectedValue = 1
Else
Regione.SelectedValue = dr("n_regione")
End If
If IsDBNull(dr("n_provincia")) Then
Provincia.SelectedValue = 1
Else
Provincia.SelectedValue = dr("n_provincia")
End If
If IsDBNull(dr("n_comune")) Then
Comune.SelectedValue = 1
Else
Comune.SelectedValue = dr("n_comune")
End If
Indirizzo.Text = dr("indirizzo")
Email.Text = dr("email")
Note.Text = dr("note_azienda")
Loop
Else
'MsgBox("Utente e/o password errati", vbCritical, "ERRORE")
End If
dr.Close()
Catch ex As Exception
'messageBox.Show("Riportare il seguente errore al programmatore: ERRORE 0161" & vbCrLf & ex.Message, "Errore sql")
Exit Sub
Finally
cmd.Connection.Close()
End Try
End Sub
nella dropdown delle regioni ho inserito AutoPostBack="true" AppendDataBoundItems="true"
nelle province AutoPostBack="true" AppendDataBoundItems="true"
nei comuni AppendDataBoundItems="true"
Grazie
Ciao