SelectCommand nun funziona all'interno di RowDataBound di una grid in ...

mercoledì 11 aprile 2012 - 14.38
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Visual Studio 2010  |  SQL Server Express

lukaone Profilo | Newbie

Ciao a tutti,
Ho questo tipo di problema:

All'interno di una gridview ho tre colonne dove sono presenti tre DDL che corrispondono alla tipica situazione di Regione Provincia e Comune.
In modalità edit le tre DDL mi bindano correttamente il valore precedentemente inserito ma non riesco a filtrare la SelectCommand che mi restiuisci tutti i valori anzichè solo quelli della provincia della regione selezionata.

Sotto riportato il listato:

___________________________________________________________________________________________________________________________________________

<asp:GridView runat="server" ID="GRDformfield" DataSourceID="SQLformfield" DataKeyNames="id_formfield"
AutoGenerateColumns="false" Width="100%" AlternatingRowStyle-BackColor="#eeeeee"
HeaderStyle-BackColor="#eaeaea" BorderColor="White" AllowPaging="True" AllowSorting="True" PageSize="20"
CellPadding="5" CellSpacing="5" SelectedRowStyle-BackColor="#009900" SelectedRowStyle-ForeColor="AntiqueWhite">
<Columns>
<asp:TemplateField HeaderText="Regione" HeaderStyle-HorizontalAlign="left" ItemStyle-HorizontalAlign="left">
<ItemTemplate>
<%# Eval("regione") %>
</ItemTemplate>
<EditItemTemplate>
<asp:Label runat="server" ID="LBLregioneedit" Text='<%# Eval("id_regione") %>' Visible="false"></asp:Label>
<asp:DropDownList runat="server" ID="DDLregioneedit" DataSourceID="SQLregione"
DataTextField="regione" DataValueField="id_regione" SelectedValue='<%# Bind("id_regione") %>'
AutoPostBack="true" AppendDataBoundItems="true" OnSelectedIndexChanged="OnSelectedIndexChanged_DDLregioneedit">
</asp:DropDownList>
<asp:SqlDataSource runat="server" ID="SQLregione"
ConnectionString="<%$ConnectionStrings:connessione %>"
SelectCommand="SELECT * FROM regioni">
</asp:SqlDataSource>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Provincia" HeaderStyle-HorizontalAlign="left" ItemStyle-HorizontalAlign="left">
<ItemTemplate>
<%# Eval("provincia")%>
</ItemTemplate>
<EditItemTemplate>
<asp:Label runat="server" ID="LBLprovinciaedit" Text='<%# Eval("id_provincia") %>' Visible="false"></asp:Label>
<asp:DropDownList runat="server" ID="DDLprovinciaedit" AppendDataBoundItems="true"
AutoPostBack="true" OnSelectedIndexChanged="OnSelectedIndexChanged_DDLprovinciaedit"
DataTextField="provincia" DataValueField="id_provincia" DataSourceID="SQLprovincia">
</asp:DropDownList>
<asp:SqlDataSource runat="server" ID="SQLprovincia"
ConnectionString="<%$ConnectionStrings:connessione %>"
SelectCommand="SELECT * FROM province">
</asp:SqlDataSource>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Comune" HeaderStyle-HorizontalAlign="left" ItemStyle-HorizontalAlign="left">
<ItemTemplate>
<%# Eval("comune")%>
</ItemTemplate>
<EditItemTemplate>
<asp:Label runat="server" ID="LBLcomuneedit" Text='<%# Eval("id_comune") %>' Visible="false"></asp:Label>
<asp:DropDownList runat="server" ID="DDLcomuneedit" AppendDataBoundItems="true" AutoPostBack="true"
DataTextField="comune" DataValueField="id_comune" DataSourceID="SQLcomune">
<asp:ListItem Value="0" Text="Tutti i Comune"></asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource runat="server" ID="SQLcomune"
ConnectionString="<%$ConnectionStrings:connessione %>"
SelectCommand="SELECT * FROM comuni">
</asp:SqlDataSource>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="true" ShowDeleteButton="true" EditText="Modifica" DeleteText="Elimina" HeaderText="MOD" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" HeaderStyle-Width="2%" />
</Columns>
</asp:GridView>

___________________________________________________________________________________________________________________________________________

__________________________________________________CODICE VB.NET____________________________________________________________________________

Protected Sub GRDformfield_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GRDformfield.RowDataBound

If e.Row.RowState = DataControlRowState.Edit Then

Dim LBLprovinciaedit As Label
LBLprovinciaedit = e.Row.FindControl("LBLprovinciaedit")
Dim provsel As Integer
provsel = LBLprovinciaedit.Text

Dim ddlprovincia As DropDownList
ddlprovincia = e.Row.FindControl("DDLprovinciaedit")
ddlprovincia.SelectedValue = provsel

Dim ddlregioneedit As DropDownList
ddlregioneedit = e.Row.FindControl("DDLregioneedit")
Dim regioneselezionata As Integer
regioneselezionata = ddlregioneedit.SelectedValue

Dim sql_provincia As SqlDataSource
sql_provincia = e.Row.FindControl("sqlprovincia")
sql_provincia.SelectCommand = "SELECT * FROM province WHERE id_regione = " & regioneselezionata & ""

Dim LBLcomuneedit As Label
LBLcomuneedit = e.Row.FindControl("LBLcomuneedit")
Dim comsel As Integer
comsel = LBLcomuneedit.Text

Dim ddlcomune As DropDownList
ddlcomune = e.Row.FindControl("DDLcomuneedit")
ddlcomune.SelectedValue = comsel

Dim ddlprovinciaedit As DropDownList
ddlprovinciaedit = e.Row.FindControl("DDLprovinciaedit")
Dim provinciaselezionata As Integer
provinciaselezionata = ddlprovinciaedit.SelectedValue


Dim sql_comune As SqlDataSource
sql_comune = e.Row.FindControl("sqlcomune")
sql_comune.SelectCommand = "SELECT * FROM comuni WHERE id_provincia = " & provinciaselezionata & ""

End If

End Sub
________________________________________________________________________________________________________________________

Grazie per tutti gli interventi!

lukaone

Gluck74 Profilo | Guru

c'è un po di confuzione nel codice.

ti consiglio di utilizzare i CascadingDropDown

http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx
http://www.codeproject.com/Articles/32725/Using-CascadingDropDown-with-a-Database


____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5