Eihlà,
allora, per la GridView se vuoi puoi usare lo stesso metodo..
Quindi, un esempio del codice può essere questo:
<asp:Label ID="Label20" runat="server" Text="Filtro per "></asp:Label>
<asp:DropDownList
ID="scelta" runat="server" AutoPostBack="True" OnSelectedIndexChanged="cambia_select">
<asp:ListItem Value="stato" Selected="True"></asp:ListItem>
<asp:ListItem Value="tipologia"></asp:ListItem>
</asp:DropDownList>
<asp:Label ID="Label21" runat="server" Text="uguale a"></asp:Label>
<asp:DropDownList ID="DropDownList9" runat="server"
DataSourceID="SqlDataSource7" DataTextField="Expr1" DataValueField="Expr1"
AutoPostBack="True" OnSelectedIndexChanged="Drop2IndexChanged">
</asp:DropDownList>
</div>
<asp:SqlDataSource ID="SqlDataSource7" runat="server"
ConnectionString="<%$ ConnectionStrings:progettoConnectionStringConnectionString %>"
SelectCommand="SELECT DISTINCT stato as Expr1 FROM progetti">
</asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1">
</asp:GridView>
<br />
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:progettoConnectionString %>"
SelectCommand="SELECT [stato], [tipologia] FROM [progetti] WHERE ([stato] = @valore)">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList9" Name="valore"
PropertyName="SelectedValue" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
E nel code-behind:
Questo dovrebbe funzionare di base, poi te lo personalizzi come meglio credi.
Personalmente io metterei un elemento di tipo "seleziona" all'inizio delle drop, che non provoca il caricamento di nulla. Poi farei il tutto a comparsa, cioè:
1)stato iniziale, visibile solo la drop con il seleziona, l'utente seleziona un valore, postback
2)compare la seconda drop con il suo seleziona visibile, l'utente seleziona e parte il postback
3)compare la grid con i valori selezionati
Inoltre, il metodo che stiamo usando non mi convince tantissimo, io caricherei direttamente tutto da codice senza usare gli sqldatasource, facendo la query a mano e poi caricando i dati nella grid.
Se hai bisogno di codice per una di queste cose, chiedi.
Ciao