dポイントプレゼントキャンペーン実施中!

VB.net2003 os WinXP Pro webアプリケーションでのDataGridコントロールの使い方ですが。
グリッドの左のほうに「編集」や「削除」のボタンを出すことができたのですが、「編集」や「削除」のボタンを押したときのイベントを拾うことができません。なぜでしょうか?DataGrid1_EditCommand()イベントなど通りません。
あと、イベントが拾えたとして、押した行の位置とかを調べることができるのでしょうか?

A 回答 (3件)

>DataGrid1_EditCommand()イベントなど通りません。


こちらの件なのですが、テストしてみた所何の問題も無く、通りました。
もしかすると、下のURLのような事でしょうか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …

押した行の位置なのですが、以下のようにすると、取得出来ましたよ(編集ボタン)。
Private Sub DataGrid1_EditCommand(ByVal source As Object, _
ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) _
Handles DataGrid1.EditCommand

Me.Label1.Text = e.Item.ItemIndex.ToString()


End Sub
ただ、上記のコードは、ソートした場合などや、ページングした時にちゃんと動くかどうかの
テストまではやってませんので、あしからずご了承下さいませ。

参考URL:http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …

この回答への補足

ありがとうございます。調べてみます。

補足日時:2005/04/15 15:44
    • good
    • 0

【追記】


ボタンを押したというイベントにはならないかもしれませんが、
DataGridのClickイベントやKeyDownイベントで対応することで、それなりに動くのでは...
    • good
    • 0

HitTestメソッドを使用して位置を特定することが出来ます。



Dim HitInfo As System.Windows.Forms.DatGrid.HitTestInfo

HitInfo = DataGrid1.HitTest(e.X, e.Y)
'// eはSystem.EventArgsです
IF HitInfo.Type = System.Windows.Forms.DataGrid.HitTestType.Cell THEN
HitInfo.Row と HitInfo.Column に位置情報が格納されています。
END IF

どうでしょうか。

この回答への補足

ありがとうございます。ボタンを押しても何もイベントが立ち上がらないのですが。Page_Loadイベントのみ立ち上がる。
Dim HitInfo As System.Windows.Forms.DatGrid.HitTestInfo

HitInfo = DataGrid1.HitTest(e.X, e.Y)
・・・
はどこに記述すればよいでしょうか?
あとwebアプリケーションなので「System.Windows」という型がないのですが。

補足日時:2005/02/19 15:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!