• ベストアンサー

ASP C# バインドしたグリッドビューからのID取得

いつもお世話になっております。 バインドしたグリッドビューに「選択」「削除」のボタンが各レコードにあります。 「選択」を押すと、SelectedIndexChangedイベントが発生して、GridView1.SelectedValueでIDを取得してうまく行っているのですが、RowDeletingイベントからのIDの取得のしかたがわかりません。。。 RowEditingイベントでもかまいません、よろしくお願いします。

  • arnk
  • お礼率49% (32/65)

質問者が選んだベストアンサー

  • ベストアンサー
  • Xaval
  • ベストアンサー率58% (61/105)
回答No.1

イベント引数には現在の行の値が入ってませんか? キーのカラム名はGridViewのPrimaryKeysだかKeysだかしりませんが、 取得できるはずです。(これをもとに、SelectedValueの返すIDカラムが決まってます) イベント引数のe.Keysを使用してもかまいません。 http://msdn2.microsoft.com/ja-jp/library/system.web.ui.webcontrols.gridviewdeleteeventargs_members(VS.80).aspx

参考URL:
http://msdn2.microsoft.com/ja-jp/library/system.web.ui.webcontrols.gridviewdeleteeventargs_members(VS.80).aspx
arnk
質問者

お礼

参考になりました!ありがとうございました!

関連するQ&A

  • ASP.NET C# グリッドビューの更新機能

    お世話になっております。 グリッドビューの既存の編集更新機能で更新ボタンを押したら同一レコード上のほかのセルの中のテキストボックスの入力チェックjavascriptでやりたいのですが、やり方がわかりません。。 rowupdatingイベントの中でないと選択されたレコードなどの詳細情報が取得できないのに、javascriptのコードはページロードイベント上に書かなければ駄目みたいです。どうやったらいいのでしょうか。。。

  • IDとパスワードの取得

    先月より人事異動になり、ASPを始めることになりました。 顧客情報を管理するプログラムを勉強しています。いくつか質問させて下さい。 まず、ログイン画面より、入力されたIDとパスワードを 取得し、デーブルに格納する方法。 また、GridViewにより、顧客番号・顧客名・商品コード・・・・と表示されているとします。その時ボタン(GridView1_SelectedIndexChanged)を押して次ぎの顧客番号をもとに別の詳細画面を表示させたいのですが、どのようにしてクリックした行の顧客番号を取得すればよいのでしょうか。 稚拙な説明で申し訳ないのですが、どなたかよろしくお願い致します。

  • ASP C#

    単純にデータベースから取得した物をフォームのTEXT_BOXに表示させたいのですがやり方がわかりません。 グリッドビューに結果をそのままバインドするのはわかるのですが。。。 select 品名 from 商品テーブル where ID = 3 など、結果が必ず1件のものです SqlConnection cn = new SqlConnection(@"Server=*****;Database=*****;User ID=***; Password=***;"); SqlCommand cmd = new SqlCommand("select title from mst_table where id = 1", cn); cn.Open(); このあと text_box.text = 結果; としたいんです。。。

  • コンボボックスと連携したグリッドビュー

    コンボボックスには 先頭が""で続きにデータが入っています。 下記のようにすると""が選択できないようです。 うまいことやる方法はありますでしょうか? そもそもDBをバインドさせたコンボボックスの先頭に どうやったら""が表示させられるのかわからないのですが・・・ strSql = "SELECT A.名前 " strSql = strSql & ", B.番号" strSql = strSql & "FROM A,B " strSql = strSql & "WHERE A.ID = B.ID " strSql = strSql & "AND A.ID = @ID" cmd.Parameters.Add("@ID", SqlDbType.Int) cmd.Parameters("@ID").Value = Me.ComboBox1.SelectedValue

  • グリッドビューで二つの選択ボタンを配置し、それぞれで選択した行の主キーを取得したいのですが、方法が分かりません。

    宜しくお願い致します。 グリッドビューで二つの選択ボタンを配置し、それぞれで選択した行の主キーを取得したいのですが・・・どのようにしたらいいのか分かりませんので詳しい方に教えていただけたらと思います。 一つ目の選択ボタンに関しては“commandfield”から“選択”を選び配置すればその行にあるボタンをクリックした際に主キーを取得することが可能であるというのは分かるのですが、 もう一つ選択ボタンを配置して、一つ目とは少し異なった動作をさせることができたらと思っております。 その為に“テンプレートフィールド”を使用して、その中に“button”を配置し、“commandname”プロパティに“select”を選んでおけば行の情報は取得することができるのですが、その行の主キーとなる“列”の情報も取得できたらと思っているのですが、検討がつかない状態です。 ご存知の方がおられましたら、御教授いただけたらと思います。 宜しくお願い致します。

  • データベースへ反映されません。

    超初心者です。よろしくお願いします。 Multiview配下にviewを二つおき、上段にgridview、下段にdetailsview をおいて、gridviewより選択ボタンにてレコードを選択し、 detailsviewに表示させ、新規作成、追加、削除をコマンドボタンで 行えるようなアプリを作成したのですが、 gridviewへ戻っても(MV.ActiveViewIndex = 0)コードが変更されておらず、 追加に関しては、再度デバッグ開始をしてみたときはじめて反映されている状態です。 どこを直せばよいのか、ヒントをいただけると幸いです。

  • C# 仮想リストビュー

    お世話になります。 仮想リストビューで画像一覧を表示しているのですが、アイテムの選択状態を上手く取得できず困っています。 通常はItems.SelectedImtesで取れるのですが、仮想リストビューだと例外になってしまいます。 そこでOnItemSelectionChangedで取得しようとしたのですが、何故か選択解除のタイミングでイベントが発生しません。仮想リストビューだからなのでしょうか。 とりあえず今はOnDrawItemで取得して変数に保存していますが、今度はスクロールで隠れた画像の選択解除が取得できません。 ですのでOnItemSelectionChangedでShiftキーとCtrlキーの有無を見て、押されていなければ一度全てのアイテムが選択解除されたものとし、その後Invalidate()とUpdate()でOnDrawItemを呼び出しています。 OnDrawItemで現在表示中の場所(クリックしたアイテム。この時は1つだけのはず)の選択状態が取れるので、とりあえずこれで目的の動作は果たしました。 ですがやり方がスマートでない上に、アイテムをクリックする度に画面を更新しているので見た目が悪いです。 何か良い方法は無いでしょうか?

  • データグリッドでBeforeDeleteイベントが発生しない

    現在データグリッドを使っていて、 ○レコード削除時の確認と ○リレーションテーブルレコードの削除をしようと思っています。 しかしグリッドで行選択し、Deleteボタンでレコードを削除しようとしても、BeforeDeleteイベントがスルーされます。何故なのでしょうか? 他に上記2つの目的を果たす事が出来る方法があればそれでもいいのですが・・。 よろしくお願いします。 環境等: Windows2000Pro VB6.0 DataGrid Control6.0 ADODB Connection Provider=Jet.OLEDB.3.51

  • GridView上で押下したボタンの区別の方法

    こんにちは。 今、GridViewに読み込んだレコードの行順番を入れ替えたいと思っています GridViewにボタンフィールドを二つ足して CommandNameをSelectにしました。 入れ替えるためにGridView.SelectedIndexで何行目が 押されたのか知りたいので、Selectにしています。 入れ替えるコードはできたのですが、 上に移動のボタンを押しても 下に移動のボタンを押しても 同じSelectedIndexChanged関数が呼ばれてしまい 困っています。 どちらのボタンを押したのか区別する方法はありますでしょうか? 押したボタンの行数がわかれば別の方法でもかまいません。 お力添えをお願いいたします。 以下、テーブルイメージ [編集] 列1~列xx [↑][↓] [編集] 列1~列xx [↑][↓] [編集] 列1~列xx [↑][↓]       ・ [編集] 列1~列xx [↑][↓]          ^^^^^^^^^           ↑↑ この二つのボタンのどちらを押したか区別したい

  • CommandFieldでの行毎表示切り替え

    ASP.NET(C#)を初めて使う者です。 GridViewにDBのデータをバインドし、先頭カラムをCommandFieldにして[削除]ボタンをつけています。 (<asp:CommandField ShowDeleteButton="True" />) DBからバインドした、別のあるカラムの値によって、この[削除]ボタンの表示/非表示を切り替えたいと思っています。いろいろ調べてみましたがやり方がわかりませんでした。 そもそも、CommandFieldで行毎に表示/非表示を切り替えることは可能なのでしょうか。