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