Una GridView con il supporto multicolumn del DataList

di Andrea Zani, in UserScript, ASP.NET 2.0, DataBinding,

La Gridview è probabilmente il webcontrol più potente presente in ASP.NET 2.0.
Ci consente con poco codice operazioni che, eseguite normalmente, ne richiederebbero in quantità, oltre a tempo per la realizzazione, come la paginazione, la modalità "Edit" di ogni record, il Sort di colonna e così via.

L'unica mancanza, se così vogliamo chiamarla, è l'impossibilità della visualizzazione su più colonne, feature presente solo nel DataList. Il webcontrol che potete scaricare con questo script cerca di sopperire a questa mancanza e aggiunge al Gridview tre nuove proprietà, due delle quali ereditate dal Datalist:

- RepeatDirection: accetta come parametro "Horizontal" o "Vertical";
- ColumNumber: numero di colonne da visualizzare;
- Distance: distanza tra le varie colonne.

L'unica feature presente nel Gridview e qui disabilitata è il "footer" e la proprietà "ShowFooter".

Nell'allegato è presente anche un esempio sul suo utilizzo e il codice sorgente. La classe del control eredita dal Gridview originale e con un banale trucco di giochi di stringhe, effettua l'incolonnamento personalizzato:

protected override void Render(HtmlTextWriter output)
{
  string contenuto = string.Empty;
  // Inserisco il contenuto del codice html del datagrid
  // e lo memorizzo nella variabile string "contenuto".
  StringWriter writer = new StringWriter();
  HtmlTextWriter buffer = new HtmlTextWriter(writer);
  base.Render(buffer);
  contenuto = writer.ToString();
  ...
  output.Write(contenuto);
}

Grazie al codice qui sopra - facendo l'override del metodo "Render" di un qualsiasi web control presente nel framework - possiamo "catturare" tutto il codice HTML prodotto da esso e modificarlo secondo le nostre esigenze con personalizzazioni come quella oggetto di questo script.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi