#829 - Mostrare l'header della GridView di ASP.NET 2.0 in mancanza di dati

Benchè il GridView offra la possibilità di visualizzare un semplice messaggio di testo o un template nel caso la fonte dati non contenga nessun elemento, non è possibile mostrare l'header delle colonne.

Il problema è risolvibile estendendo la classe GridView, eseguendo l'override del metodo CreateRow:

public class MyGridView : GridView
{
  protected override GridViewRow CreateRow(int rowIndex, int dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState)
  {
    if (rowType == DataControlRowType.EmptyDataRow)
      return base.CreateRow(-1, -1, DataControlRowType.Header, DataControlRowState.Normal);
    else
      return base.CreateRow(rowIndex, dataSourceIndex, rowType, rowState);
  }
}

E dichiarando una semplice EmptyDataTemplate:

<EmptyDataTemplate>Specificare un testo.</EmptyDataTemplate>

Così facendo verrà richiamato il Metodo CreateRow, che nel nostro caso non istanzierà più i controlli contenuti nell'EmptyDataTemplate, ma restituirà una nuova riga di tipo Header.
Successivamente è sufficiente registrare la classe (che può essere anche salvata in /App_Code/), attraverso la direttiva

<%@Register %>


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

mSiracusa scrive:
#829 - Mostrare l'header della GridView di ASP.NET 2.0 in mancanza di dati

Ciao a tutti, sto provando a implementare un tema per il controllo derivato usato nel post e volevo chiedere se qualcuno era gia' riuscito a farlo.C'e...
lunedì 12 marzo 2007
edaje scrive:
#829 - Mostrare l'header della GridView di ASP.NET 2.0 in mancanza di dati

Io nella classe MyGridView ho fatto l'override del metodo Render. Quando la griglia è vuota "renderizzo" una tabella con l'header e sotto una riga con...
venerdì 20 ottobre 2006 | 1 risposta

Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC