Я использую VS2005 ASP.NET C# и SQL Server 2005.Получить GridView Row Count с Условием
У меня есть GridView на моей странице и пару наклеек.
Я могу выделить значение числа строк в метку следующий:
UserFound.Text = GridView1.Rows.Count.ToString();
Однако, я хотел бы выделить еще одно значение другого ярлык, который подсчитывает количество строк, когда в значение внутри столбца Роль равна «admin».
Как я могу это сделать? Примеры и образец кода будут оценены.
EDIT:
int admincount=0;
foreach (DataRow oRow in GridView1.Rows)
{
if (GridView1.Rows["User Role"].ToString().Trim().Contains("Admin"))
{
admincount++;
}
}
AdminFound.Text = admincount.ToString();
Я получаю сообщение об ошибке:
The best overloaded method match for System.Web.UI.WebContols.GridViewCollection.this[int] has some invalid arguments
и
Argument '1': canot convert from 'string' to 'int'
Это намного проще и понятнее, если вы используете конструкцию foreach в своем цикле. Например, 'foreach (DataRow oRow в datatable1.Rows)'. Тогда вам не нужно беспокоиться о синтаксисе '[i]'. –
Да, 'foreach' лучше, если цель цикла только для подсчета. Но в будущем возможно, что ему нужно будет проверить, является ли это первой строкой или последней строкой или определенной строкой таблицы. Когда это произойдет, я не нашел способ добиться этого в 'foreach'. Поэтому мне нужно снова использовать цикл' for'. Может ли кто-нибудь сказать мне, чтобы достичь этого в 'foreach'? – william
Если нам нужно это сделать, мы просто добавляем переменную счетчика за пределы цикла, которая увеличивается в конце каждого прохода через цикл. –