Salve, sto sviluppando una piccola rubrica telefonica per cercare di capire come funziona il formview ed i template. Vengo al mio quesito. All'interno della mia formview ho 2 dropdownlist, una elenca le regioni mentre l'altra elenca i comuni filtrati per regione. Quindi se nella prima seleziono "sicilia" nella seconda elenco solo i comuni della sicilia. bene, non riesco ad aggiornare il ddl dei comuni mi risulta sempre vuoto. Quello che non mi quadra è che comunque non mi da nessun errore. Ho provato a visualizzarmi la stringa sql per l'aggiornamento e questa risulta corretta. Non capisco, potete aiutarmi?

Posto un pò di codice:
Questo la parte asp:

<div id="corpo">

<asp:ScriptManager id="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel id="UpdatePanel1" runat="server">
<ContentTemplate>
<table style="width: 100%; height: 500px">
<tr>
<td></td>
<td style="height: 22px; width: 925px;" class="auto-style1">
&nbsp;</td>
<td></td>
</tr>
<tr>
<td class="auto-style8" >
</td>
<td style="width: 925px; height: 391px">
<asp:FormView ID="FormView1" runat="server" DataKeyNames="IDIndirizzo" DataSourceID="SqlDataSource_RubricaTelefonica" Width="100%" DefaultMode="Insert" style="text-align: left; color:#003366; font-size: small;">
<InsertItemTemplate>
<span class="auto-style9">Azienda </span>
<asp:TextBox ID="AziendaTextBox" runat="server" Text='<%# Bind("Azienda") %>' CssClass="auto-style7" Width="90%" />
<br class="auto-style9" />
<span class="auto-style9">Indirizzo </span>
<asp:TextBox ID="IndirizzoTextBox" runat="server" Text='<%# Bind("Indirizzo") %>' CssClass="auto-style7" Width="90%" />
<br />
<span class="auto-style9">Regione
<asp:DropDownList ID="RegioneTextBox" runat="server" AutoPostBack="True" CssClass="auto-style7" DataSourceID="SqlDataSource_Regione" DataTextField="Regione" DataValueField="Regione" OnTextChanged="cmdRegione_Click" Width="250px">
</asp:DropDownList>
</span>
&nbsp;<span class="auto-style9">Paese </span>
<asp:TextBox ID="PaeseTextBox" runat="server" Text='<%# Bind("Paese") %>' CssClass="auto-style7" Width="200px" />
<br />
<span class="auto-style9">Comune
<asp:DropDownList ID="ComuneTextBox" runat="server" AutoPostBack="True" CssClass="auto-style7" DataSourceID="SqlDataSourceComune" DataTextField="Comune" DataValueField="Comune" OnTextChanged="cmdComune_Click" Width="300px">
</asp:DropDownList>
</span>
&nbsp;<span class="auto-style9">CAP </span>
<asp:TextBox ID="CAPTextBox" runat="server" Text='<%# Bind("CAP") %>' CssClass="auto-style7" Width="100px" />
<span class="auto-style9">&nbsp;Provincia </span>
<asp:TextBox ID="ProvinciaTextBox" runat="server" Text='<%# Bind("Provincia") %>' CssClass="auto-style7" Width="50px" />
<br class="auto-style9" />
<span class="auto-style9">Sito </span>
<asp:TextBox ID="SitoTextBox" runat="server" Text='<%# Bind("Sito") %>' CssClass="auto-style7" Width="500px" />
&nbsp;<span class="auto-style9">Fax </span>
<asp:TextBox ID="FaxTextBox" runat="server" CssClass="auto-style7" Text='<%# Bind("Fax") %>' />
<br class="auto-style9" />
<span class="auto-style9">Note
<asp:TextBox ID="NoteTextBox" runat="server" CssClass="auto-style7" Text='<%# Bind("Note") %>' TextMode="MultiLine" Width="90%" />
</span>
<br class="auto-style9" />
<br />
<asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Text="Inserisci" />
&nbsp;<asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Annulla" />
</InsertItemTemplate>
<InsertRowStyle Font-Names="Tekton Pro Ext,Small" />
</asp:FormView>
<asp:SqlDataSource ID="SqlDataSource_RubricaTelefonica" runat="server" ConnectionString="<%$ ConnectionStrings:ProvaConnectionString %>" InsertCommand="INSERT INTO T_RubricaNomeAzienda(Azienda, Indirizzo, Comune, CAP, Provincia, Regione, Paese, Sito, Note, Fax) VALUES (@Azienda, @Indirizzo, @Comune, @CAP, @Provincia, @Regione, @Paese, @Sito, @Note, @Fax)" SelectCommand="SELECT * FROM T_RubricaNomeAzienda">
<InsertParameters>
<asp:Parameter Name="Azienda" />
<asp:Parameter Name="Indirizzo" />
<asp:Parameter Name="Comune" />
<asp:Parameter Name="CAP" />
<asp:Parameter Name="Provincia" />
<asp:Parameter Name="Regione" />
<asp:Parameter Name="Paese" />
<asp:Parameter Name="Sito" />
<asp:Parameter Name="Note" />
<asp:Parameter Name="Fax" />
</InsertParameters>
</asp:SqlDataSource>
</td>
<td style="height: 391px"></td>
</tr>
<tr>
<td class="auto-style9" >
&nbsp;</td>
<td style="width: 925px">
<asp:SqlDataSource ID="SqlDataSourceComune" runat="server" ConnectionString="<%$ ConnectionStrings:ProvaConnectionString %>" SelectCommand="SELECT [Comune], [Prov], [Cap], [Area_Nielsen] FROM [LookUp_ComuneCapProvinciaRegioneArea] WHERE ([Regione] = @Regione)">
<SelectParameters>
<asp:ControlParameter ControlID="FormView1" Name="Regione" PropertyName="SelectedValue" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource_Regione" runat="server" ConnectionString="<%$ ConnectionStrings:ProvaConnectionString %>" SelectCommand="SELECT Regione FROM LookUp_ComuneCapProvinciaRegioneArea GROUP BY Regione ORDER BY Regione"></asp:SqlDataSource>
</td>
<td >
&nbsp;</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>

</div>

Questa la parte vb per effettuare l'aggiornamento del ddl dei comuni:
Sub cmdRegione_Click(ByVal sender As Object, ByVal e As EventArgs)

Dim strSQL As String

Dim ddlTemp As DropDownList = DirectCast(FormView1.FindControl("RegioneTextBox"), DropDownList)
Dim xRegione As String = ddlTemp.SelectedItem.Value

strSQL = "SELECT * FROM [LookUp_ComuneCapProvinciaRegioneArea] WHERE ([Regione] = '" & xRegione & "')"
SqlDataSourceComune.SelectCommand = strSQL
SqlDataSourceComune.DataBind()

Dim Comune As DropDownList = DirectCast(FormView1.FindControl("ComuneTextBox"), DropDownList)
Comune.DataBind()

End Sub
354 messaggi dal 13 marzo 2013
Premesso che io di solito come data source uso l'entity framework quindi non so quanto possa esserti di aiuto la mia affermazione ma, nella clausola where dell' elenco comuni gli hai detto di prendere come parametro il valore selezionato dalla prima DropDownList?
Si, prende il dato dalla:

Dim ddlTemp As DropDownList = DirectCast(FormView1.FindControl("RegioneTextBox"), DropDownList)
Dim xRegione As String = ddlTemp.SelectedItem.Value

Comunque ho capito dove era l'errore.
La stringa per popolare la ddl dei comuni era composta da una parte dei campi mentre per l'aggiornamento usavo * prendendo tutti i campi, questo generava un conflitto.
Grazie Ciao

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.