Dopo aver aggiunto i dati nella nostra GridView (ad esempio tramite XML come vedete qui), può capitare di voler creare un meccanismo di filtraggio, soprattutto in presenza di molti dati.

Possiamo creare un meccanismo attraverso il quale cercare nella GrdiView in base a ciò che scriviamo in una TextBox, il tutto in tempo reale.

Prima di tutto aggiungete una TextBox al Form dove c'è la GridView.

Il .NET Framework per certi versi è davvero ottimo.

Quello che vediamo oggi è come riempire una GridView da dati presi da un file XML.

Come potremo vedere, la cosa sarà molto semplice (soprattutto se non abbiamo pretese di personalizzazione); così semplice che neanche vi dirò com'è strutturato il file.

Ovviamente, in questo semplice esempio, verranno create tante colonne quanti sono i campi presenti nel file.

Quindi questo dipende anche dalle vostre esigenze.

Inoltre il progetto si basa su un Windows Form classico (l'ho preferito al WPF).

Bene, prima di tutto trasciniamo nella finestra un oggetto DataGridView.

Il controllo server GridView (GV) è uno dei controlli più utlizzati in ambito Asp.NET per rappresentare i dati in forma tabellare.

Volendo è possibile controllarla senza scrivere una riga di codice, ma qui vi spiegherò come fare scrivendo tutto a mano usando il C#.

Prima di tutto creiamo aggiungiamo una GV alla pagina; vi posto la mia:

<asp:GridView ID="DecoderView" runat="server" DataKeyNames="sito#">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="SelectedItem" AutoPostBack="true" runat="server" OnCheckedChanged="btn_check" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="sito#" HeaderText="sito#" SortExpression="sito#" InsertVisible="False" />
<asp:BoundField DataField="localita" HeaderText="localita" SortExpression="localita" />
<asp:BoundField DataField="descrizione" HeaderText="descrizione" SortExpression="descrizione" />
<asp:BoundField DataField="IP" HeaderText="IP" SortExpression="IP" />
<asp:BoundField DataField="riserva" HeaderText="riserva" SortExpression="riserva" />
<asp:BoundField DataField="Expr2" HeaderText="gruppo#" SortExpression="Expr2" />
<asp:BoundField DataField="Expr1" HeaderText="tipo_deploy#" SortExpression="Expr1" />
<asp:BoundField DataField="versione" HeaderText="versione" SortExpression="versione" />
<asp:BoundField DataField="versione_itl" HeaderText="versione_itl" SortExpression="versione_itl" />
<asp:BoundField DataField="ultimo_avvio" HeaderText="ultimo_avvio" SortExpression="ultimo_avvio" />
<asp:BoundField DataField="app_disk_space" HeaderText="app_disk_space" SortExpression="app_disk_space" />
<asp:BoundField DataField="TGU" HeaderText="TGU" SortExpression="TGU" />
<asp:BoundField DataField="ip_voyager" HeaderText="ip_voyager" SortExpression="ip_voyager" />
</Columns>
</asp:GridView>

L' uniche proprietà che ho impostato è il DataKeyNames che corrisponde alla Primary Key della mia tabella SQL Server.

Poi ho aggiunto a mano le colonne (i campi) da visualizzare; nel mio caso la prima colonna è una serie di CheckBox.

Le colonne che rappresentano i dati vengono controllate attraverso oggetti BoundField, nei quali dovete impostare il DataField (il nome del campo della tabella), l'HeaderText (l'inrtestazione della colonna nella GV) e la SortExpressione (in genere uguale al DataField).

Per quanto riguarda la pagina abbiamo finito; tutto il resto sarà fatto da code-behind.