Исходя из уже полученных ответов, GridView.Rows.Count
недостаточно само по себе, в зависимости от характера вашего GridView
, особенно если это динамический gv, который в большинстве случаев, плюс вы должны учитывать Paginating
, Верхние и нижние колонтитулы, которые изменяют количество строк.
Я использую простой метод, чтобы сказать мне ...
//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;
}
Так что, запустив что-то подобное, вы узнаете, действительно ли строки
Строки «ДАННЫЕ», либо пусто, либо ничего!
Очевидно, что в моем случае у меня есть HiddenField, чтобы сказать мне, является ли GridViewRow фактической строкой данных, так как я предварительно заполняю свой gridView пустыми строками (для моих целей) и некоторыми datarows.
Однако, более простая версия для проверки на основе DataRow против HeaderRow и т. Д. *
foreach (GridViewRow gvRow in myGridView.Rows)
if (gvRow.RowType == DataControlRowType.DataRow)
{
//do what you need
}
Надеюсь, это поможет.
Короче говоря, функции GridView.IsEmpty (), к сожалению, нет, если только вы не перечислите ее, как показано ниже.