DOBON.NET DOBON.NETプログラミング掲示板過去ログ

GridViewコントロールを使用してクリックされたセルの列番号を取得する方法について

環境/言語:[VS2005(C#)、ASP.Net2.0、Microsoft Ajax Toolkit]
分類:[ASP.NET]

こんにちは。アべです。

 現在、VS2005(C#)、ASP.Net2.0にて開発しています。
GridViewコントロールを使用して、データの一覧表示を行っています。
グリッドの内容は以下の通り。
 --------------------------------
 商品名 数量1 数量2 数量3 数量4
 商品A | 10 | 11| 12| 0|
 商品B | 1 | 0| 3| 5|
 商品C | 2 | 0| 7| 1|
 商品D | 0 | 1| 17| 0|
 --------------------------------

各数量列は、[buttonField]を使用する事により、リンクを張っています。
例えば、”商品Bの数量3”(※値:3)をクリックした場合に、
クリックされたセルの行番号は取得する事が出来るのですが、
列番号の取得が出来ません。
※処理としては、イベント【SelectedIndexChanged】を使用して
 クリックされたセルの値を取得しようとしています。
※行番号は、GridViewの【SelectedIndex】で取得できました。
GridViewのプロパティを調べてみても、アクティブ列番号を返却
するようなプロパティは見付りませんでした。

1日悩み続けて解決しておらず途方にくれています。
アドバイスやヒントでもよろしいので何かご存知の方
アドバイスをお願い致します。
以上
> クリックされたセルの行番号は取得する事が出来るのですが、
> 列番号の取得が出来ません。

  ・・・ここの掲示板の元のTipsに・・・
  http://dobon.net/vb/dotnet/datagridview/selectedcells.html

  ASP.NETでも同等かは知りませんが。お試しください。

以上。
セルをクリックしたときにPostBackさせることで、
対応できないでしょうか?
PostBack時に、クリックしたセルの情報をサーバー側に
渡すことができます。

# 外れていたらすみません

手前味噌ですが、参考URLです

データグリッドで「選択」ボタンをクリックしてもSelectedIndexChangedイベントが発生しない
http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=24172&rev=&no=0
2009/04/28(Tue) 10:49:20 編集(投稿者)
2009/04/28(Tue) 10:49:11 編集(投稿者)

オショウ ファミリーさん、
H.K.R.さんさん、
アドバイスを有難うございます。

1.頂いたアドバスはWinFormのDataGridViewであり
今回はWebFormのGridViewとなるため、条件が異なるようです。
2.こちらでは、SelectedIndexChangedが発生しています。
しかし、いまだにセルのリンクをクリックしても列の
情報が取れないので、困っております。

今の進捗ですが、イベント(SelectedIndexChanged)も
行の情報(SelectedIndex)も取れております。
あとは、列の情報さえ取れればどこがクリックされたか
わかるのですが、後一歩、それが出来ていない状況です。

クリックして選択した情報を元に画面遷移したい。

引き続き、情報を求めます。

何かご存知の方アドバイスを宜しくお願い致します。
結局、GirdViewとC#のイベント処理だけでは
実現できず、JavaScriptを埋め込み対応しました。

グリッド上のリンクをクリックするとJavaScriptが走り、
HIDDENの項目に列情報を入れて、POSTBACKする作りにしました。

これで、サーバ側のイベントで行の情報(SelectIndex)と
HIDDENの列の情報を取得できました。

有難うございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板