Wednesday, May 21, 2008

Cambiare l'ordine delle colonne in un GridView

. Wednesday, May 21, 2008

Premesso che il titolo non rende al massimo l'idea di ciò che intendo mostrare ( purtroppo non sono riuscito a trovare di meglio), vediamo di rendere più chiaro con un esempio.
Con il seguente markup:

   1: <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true">
   2:   <Columns>
   3:     <asp:TemplateField>
   4:       <ItemTemplate>
   5:         <asp:LinkButton runat="server" ID="lnkDelete" Text="Delete"></asp:LinkButton>
   6:       </ItemTemplate>
   7:     </asp:TemplateField>
   8:   </Columns>
   9: </asp:GridView>


otteniamo come risultato dopo aver effettuato il bind sul controllo GridView:

 OrderGridView1
Ma come si può procedere se vogliamo spostare la TemplateColumn al termine della griglia che presenta la property AutoGenerateColumns a true?
OrderGridView2 
Agendo sull'evento RowCreated del controllo GridView vado a recuperare la prima cella (quella che voglio spostare) di ogni riga per poi aggiungerla alla collection cambiando banalmente l'indice:


   1: protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
   2: {
   3:   TableCell cell = e.Row.Cells[0];
   4:   e.Row.Cells.AddAt(e.Row.Cells.Count, cell);
   5: }
Se qualcuno conosce un'altra soluzione basta commentare il post. smile_nerd

0 commenti:

Post a Comment