11

sqldatasourceとGridViewを使用しています。RowDataBoundイベントでGridViewからセルの値を取得したいのですが、使用できないためe.RowIndexです。

セルが空の場合に更新イベントをチェックインするにはどうすればよいですか?使用if != nullしましたが、動作しなかったので、空かどうかを確認する必要があります。

ありがとう

4

1 に答える 1

16

RowdataBoundイベントでは、次のコードを使用して、gridviewからセルの値を取得できます。

[ 1 ]//特定の行のユーザー名を取得

string servicename = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Name"));

RowUpdatingイベントでは、次のコードを使用して、セルが空かどうかを確認できます。

string servicename = grdvw_showdetails.DataKeys[row.RowIndex][1].ToString();

上記のコードは、行更新イベントでDatakeyを使用しています。データキーを使用したくない場合は、特定のセルをチェックするコードが空であるかどうかを確認します。

 TextBox txtaname = (TextBox)row.FindControl("txt_updname");

 if(txtaname.text != null)

編集:

この答えは素晴らしいです。ただし、少しコメントを追加したいと思います。RowDataboundイベント内の行セルデータをチェックする場合、行DataItemのItemArrayプロパティに直接アクセスすることはできません。したがって、このようなことを行うと、それは無意味です:string val = e.Row.Cells[2].Text.ToString();そしてエラーをスローします。

そこで、この答えの最初の行が出てきます。[ 1 ]

次の画面は、デバッグモードで監視を行った場合の、行の基になるプロパティのツリー/階層を示しています。

ここに画像の説明を入力してください

于 2012-04-24T14:30:32.870 に答える