检查每行上的gridview列是否具有相同的值

时间:2016-08-29 04:11:12

标签: c# asp.net gridview

如何检查每行上的网格视图列是否具有相同的值。

将在下面的代码中应用的条件是什么。

代码

int y = 0;
foreach (GridViewRow row in gridreq.Rows)
{
    string catid = row.Cells[2].Text;
    if (//condition)
    {
        y = y + 1;

    }
}

if (y == 0)
{

//code

}
else
{
 //code
}

2 个答案:

答案 0 :(得分:2)

除了foreach内的foreach,除了所有其他行的值之外,没有可行的方法来检查行的值。一些解决方法:

也许你可以检查第一个值?

int y = 0;
var checkItem = gridreq.Rows[0].Cells[2].Text;
foreach (GridViewRow row in gridreq.Rows)
{
    string catid = row.Cells[2].Text;
    if (catid == checkItem)    //or use String.compare here
    {
        y = y + 1;

    }
}

另一种方法是检查之前行的值。

int y = 0;
string catidCheck = "";
foreach (GridViewRow row in gridreq.Rows)
{
    string catid = row.Cells[2].Text;
    if (catid == catidCheck)    //or use String.compare here
    {
        y = y + 1;
    }
    catidCheck = catid;
}

答案 1 :(得分:1)

应该可以使用Linq distinct

执行此操作
int y = gridreq.Rows.Select((row) => row.Cells[2].Text).Distinct().Count()

然后我猜你以后的情况会是if (y == 1)