- PR -

DataGridにボタン表示

投稿者投稿内容
ryu
常連さん
会議室デビュー日: 2005/07/05
投稿数: 30
投稿日時: 2005-09-12 15:36
ASP.Netを最近始めたばかりでASP.NET(VB.NET)についてまだあまり理解しておらず、
色々調べながら。。。という状態で一つどうしてもわからない事があり質問させてください。
この掲示板の中からDataGridについてのスレッドを読みましたがいまいちわからず。。。

DataGridにデータを表示し、ボタンを作成するところまではできたのですが、
このボタンを押したときにイベントが何も走らないのです。
ボタンの作成方法がおかしいのか、イベントを走る場所を間違えているのか。。。
すみませんが教えてください。
ボタンは、DataGridのプロパティビルダ→列の中にボタン列を選択可能にしてテキストで
名前を付けました。

ちなみにボタンを押したらその行のデータを取得して次のDataGridを表示したいのです。
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2005-09-12 15:56
ItemCommandイベントについて調べてみましょう。
ryu
常連さん
会議室デビュー日: 2005/07/05
投稿数: 30
投稿日時: 2005-09-12 16:18
trapemiyaさんありがとうございます。

僕もItemCommandイベントは調べてそこに

TXT_TEST.Text = e.CommandName

といれてデバックしてみたのですが、反応がない状態なのです。
paupau
会議室デビュー日: 2005/08/24
投稿数: 13
投稿日時: 2005-09-12 16:58
ボタンにイベントはきちんと設定されていますか?
データグリッド内だからといってイベントが発生しないとかは関係ないと思うので
簡単なミスなきがするのです。
デバッガでブレークポイントかけてみてください。

はっ!
CommandNameがブランクでTextもブランクだったりとか(ナワケナイカ
ryu
常連さん
会議室デビュー日: 2005/07/05
投稿数: 30
投稿日時: 2005-09-12 17:07
paupauさんありがとうございます。

多分、設定とかちょっと抜けているだけだとは思うのですが。。。
仕組みをわかっていないところに問題があると思います。

一応、
Private Sub DataGrid_ItemCommand(ByVal source As Object, ByVal e As       System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid.ItemCommand
  TXT_TEST.Text = e.CommandName
End Sub

のTXT_TEST.Text = e.CommandNameの部分にブレークポイントをかけて
動かしているのですが、ここを通らないんです。。。
ryu
常連さん
会議室デビュー日: 2005/07/05
投稿数: 30
投稿日時: 2005-09-12 17:08
CommandNameの設定ってどこかにする必要ってあるんですか?
無月 重造
ベテラン
会議室デビュー日: 2003/12/18
投稿数: 67
投稿日時: 2005-09-12 17:20
ItemCommandって、データグリッドのアイテムコマンドイベントですよね?

であれば、e.CommandSourceってのがイベントの発行元(この場合はボタンのコントロール)になるはずです。これをボタン型にキャストしてやればボタンのコントロールとして取れるはずです。

また、e.Item.Cells[hoge]で押したボタンのある行のhoge列の情報が取れるので、これをうまく使えば目的の操作ができるんじゃないですかね?

的外れだったらごめんなさい。
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2005-09-12 17:20
ItemCommand イベントのイベントハンドラを設定する必要があります。以下のリンクを参考にされるか、DataGridのプロパティで、イベントハンドラを指定してあげましょう。どちらでも同じです。

ItemCommand イベント
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwebuiwebcontrolsdatalistclassitemcommandtopic.asp

スキルアップ/キャリアアップ(JOB@IT)