Ho trovato la soluzione...
Bisogna rendere la colonna che si vuole creare una colonna TemplateField che contiene al suo interno un HiddenField:
codice:
<asp:TemplateField ShowHeader="False">
<ItemStyle Width="0px" />
<ItemTemplate>
<asp:HiddenField Visible="false" ID="hfID" runat="server" Value=<%# Bind("ID") %> />
</ItemTemplate>
</asp:TemplateField>
Impostare la larghezza a 0 non serve praticamente a niente perchè la colonna, anche se vuota, viene comunque creata ed è visibile; quindi nel codice, dopo aver associato il DataSource ed effettuato il DataBind(), cioè quando i dati sono stati già associati al GridView, bisogna intercettare l'evento RowCreated della griglia e nascondere quindi la colonna che ci interessa tramite questo codice:
codice:
e.Row.Cells[0].Visible = false;
Attenzione però che se la griglia ha una paginazione si dovrà nascondere la colonna solo per quelle righe che non sono di tipo TableCell (TableCell è infatti il tipo della riga su cui viene effettuata la paginazione).
Quindi ho aggiunto nell'evento RowCreated questo codice:
codice:
if (e.Row.Cells[0].GetType().Name!="TableCell")
{
e.Row.Cells[0].Visible = false;
}
Spero che sia utile a qualcuno...
Ciao