Realizzare una Master - Details nelle stessa pagina
Grazie alla interazione tra i vari controlli, possiamo rendere dinamica una tabella, la quale mostra
delle celle in base a delle queries fatte attraverso un altro controllo, in questo caso una DropDownList.
A seconda del valore scelto dalla Select, apparirà il record completo nella tabella (GridView) sottostante.
Innanzitutto si deve inserire nella pagina un controllo DropDownList ed associarlo alla base di dati.
Vogliamo, per esempio, che il value di ogni option venga popolato dal cognome:
Seleziona un cognome dall'elenco:
Adesso si deve introdurre un controllo GridView, anch'esso associato ai dati, il quale visualizzerà tutti
i dati appartenenti a "quel" cognome e stamparli nella tabella.
| Cognome | Nome | Città | Stato | CodPostale |
| Black | Alastair | Seattle | WA | 98105 |
E questo è quanto. Adesso passiamo a vedere 1 pò di codice. Per quanto riguarda la DropDownList abbiamo:
<asp:DropDownList ID="DropDownList1"
runat="server" AutoPostBack="True"
DataSourceID="AccessDataSource1"
DataTextField="Cognome"
DataValueField="GiocatoreID">
</asp:DropDownList>
Il codice del DataSource, invece, è:
<asp:AccessDataSource ID="AccessDataSource1"
runat="server"
DataFile="App_Data/NomeDatabase.mdb"
SelectCommand="SELECT [GiocatoreID], [Cognome] FROM [tabella] ORDER BY Cognome ASC">
</asp:AccessDataSource>
Affinchè vengano visualizzati, nella tabella sottostante, tutti i dati appartenenti al cognome selezionato,
si deve creare un secondo AccessDataSource, con una query e dei parametri. Il codice del secondo AccessDataSource è:
<asp:AccessDataSource ID="AccessDataSource2"
runat="server" DataFile="App_Data/NomeDatabase.mdb"
SelectCommand="SELECT [GiocatoreID], [Cognome], [Nome], [Citta], [Stato],
[CodPostale] FROM [Giocatori] WHERE ([GiocatoreID] = ?)">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1"
Name="GiocatoreID" PropertyName="SelectedValue"
Type="Int16" />
</SelectParameters>
</asp:AccessDataSource>
Si noti il codice SelectParameters; quanto è scritto al'intero dei tag, filtra la query
in base al cognome selezionato dal menu a discesa. Per quanto riguarda, invece, il Controllo GridView,
lo si importa nella pagina come è stato fatto con il primo esempio e lo si associa all'AccessDataSource con
ID=AccessDataSource2.