如何获取某个GridView列中的所有值?

时间:2013-01-12 07:26:37

标签: c# asp.net database gridview

我想检查一个已删除的行是否在某个单元格中有一个值,该值是整个GridView中最后一个类型。我知道我可以通过这个来获取已删除行的单元格的值:

protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
   Response.Write(e.Values["img_cat"]);            
}

但是不知道如何检查已删除行的img_cat列中的值在任何其他img_cat单元格中是否不存在。

另外,我想知道这种方法是否更适合检查数据库中是否存在某个单元格值。或者直接在RowDeleted事件中直接检查数据库。

2 个答案:

答案 0 :(得分:1)

您可以在活动中写下此代码并检查

   foreach (GridViewRow row in gvAdminUsers.Rows) {

    if (row.RowType == DataControlRowType.DataRow) {
              //here 2 can be replace by your column index i.e. index of image column 

        if (row.Cells(2).Text == e.Values["img_cat"]) {
            // found inserted user - select it!
            gvAdminUsers.SelectedIndex = iRowCnt;
        }
        iRowCnt += 1;
    }
 }
 if(iRowCnt>1)
  //there are row exists with this value

就像这样你可以解决你需要遍历每一行网格以找出值的问题

答案 1 :(得分:1)

作为@PranayRana答案的补充,你也可以使用Linq:

protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
   var val = e.Values["img_cat"];
   if (!(sender as GridView).Cast<GridViewRow>().Any(x => x["img_cat"] == val))
   {
       //It's the last one, do something.
   }
}