Modificare la dimensione di una textbox di un DataGrid di ASP.NET

Daniele Bochicchio

di , in ASP.NET, DataGrid, C#,

Uno dei problemi più sentiti nell'utilizzo del DataGrid è l'impossibilità, attraverso una proprietà, di cambiare la dimensione della textbox che viene visualizzata in Edit Mode per una BoundColumn.
Ci sono diversi approcci al problema, probabilmente il più semplice consiste nell'intercettare l'evento PreRender del DataGrid e posizionarsi sulla cella (o sulle celle) per variarne la dimensione.
Ecco un esempio:

<SCRIPT LANGUAGE="C#" RUNAT="SERVER">

 private void dgDati_PreRender(object sender, EventArgs e)
{
  // intercetto la riga in Edit Mode
   if  (dgDati.EditItemIndex != -1)
  {
    // cambio la dimensione del primo controls(0) della terza cella (indice 2)
    ((TextBox) dgDati.Items[dgDati.EditItemIndex].Cells[2].Controls[0]).Width = 20;
  }
}
</SCRIPT>

Per approfondimenti sul DataGrid si veda:
http://www.aspitalia.com/ricerca/super.aspx?usag=1&key=DataGrid+ASP.NET