1

削除された行が、GridView 全体でその種類の最後のセルである特定のセルに値を持っているかどうかを確認したいと考えています。これにより、削除された行のセルの値を取得できることを知っています:

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

img_catしかし、削除された行の列内の値が他のimg_catセルに存在しないことを確認する方法がわかりません。

また、このアプローチがデータベース内の特定のセル値の存在を確認するのに適しているかどうかを知りたいです。RowDeletedまたは、イベント内で直接データベースでチェックを行うだけです。

4

2 に答える 2

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.
   }
}
于 2013-01-12T07:43:45.560 に答える
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

このようにして、グリッドの各行をトラバースして値を見つける必要がある問題を解決できます

于 2013-01-12T07:40:44.120 に答える