Sobre la base de las respuestas ya, GridView.Rows.Count
no es suficiente por sí solo, dependiendo de la naturaleza de su GridView
, especialmente si se trata de un gv dinámico, que en la mayoría de los casos es, además, tiene que tener en cuenta Paginating
, encabezados y pies de página, que alteran el recuento de filas.
Utilizo un método simple para decirme ...
//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;
}
Entonces, ejecutar algo como esto le dirá si las filas son realmente " 'filas de datos', o vacío o nada!
Obviamente en mi caso tengo un HiddenField decirme si el GridViewRow es una fila de datos reales, ya que el llenado previo del gridview con mi filas en blanco (para mis propósitos) y algunos datarows.
Sin embargo, una versión más simple de comprobación basándose en DataRow vs HeaderRow, etc ...
foreach (GridViewRow gvRow in myGridView.Rows)
if (gvRow.RowType == DataControlRowType.DataRow)
{
//do what you need
}
Espero que esto ayude.
En resumen, no hay una función GridView.IsEmpty() desafortunadamente, a menos que enumere una como se muestra a continuación.
+1-EmptyDataTemplate es la solución más elegante IMHO –
+1 También puede usar la propiedad EmptyDataText –