Sulla base delle risposte già, GridView.Rows.Count
non è sufficiente di per sé, a seconda della natura della vostra GridView
, soprattutto se si tratta di un gv dinamica, che nella maggior parte dei casi lo è, in più devi calcolare Paginating
, intestazioni e piè di pagina, che alterano il conteggio delle righe.
Io uso un metodo semplice per dirmi ...
//checks if a gridview has any actual rows of data (not just blank rows filled in by the Load
protected bool gvNoData(GridView gv)
{
int wsDataRow = 0;
foreach (GridViewRow gvRow in gv.Rows)
if (gvRow.RowType == DataControlRowType.DataRow)
{
HiddenField hf = (HiddenField)gvRow.FindControl("hfStudentID");
if (hf != null)
if (hf.Value.ToString().Length > 0)
wsDataRow +=1;
}
//if a count was generated then there are data rows, otherwise the rows are blank or nonexistant
if (wsDataRow > 0) return false;
else return true;
}
Così in esecuzione qualcosa come questo vi dirà se le righe sono davvero " 'righe di dati', o vuoto o niente!
Ovviamente nel mio caso ho un HiddenField per dirmi se il GridViewRow è una riga di dati reali, come ho precompilare il mio gridView con righe vuote (per i miei scopi) e alcuni DataRow.
Tuttavia, una versione più semplice per controllare sulla base di DataRow vs HeaderRow, ecc ...
foreach (GridViewRow gvRow in myGridView.Rows)
if (gvRow.RowType == DataControlRowType.DataRow)
{
//do what you need
}
Spero che questo aiuti.
In breve, non esiste purtroppo la funzione GridView.IsEmpty(), a meno che non ne venga enumerata una come mostrato di seguito.
+1 -the EmptyDataTemplate è la soluzione più elegante IMHO –
+1 È anche possibile utilizzare la proprietà EmptyDataText –