web-dev-qa-db-ja.com

行データバインドイベントのセルの値を取得するにはどうすればよいですか?セルが空かどうかを確認する方法は?

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

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

ありがとう

11
Alexander

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]

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

enter image description here

16
giri-webdev