- PR -

DataGridにボタン表示

投稿者投稿内容
無月 重造
ベテラン
会議室デビュー日: 2003/12/18
投稿数: 67
投稿日時: 2005-09-12 17:23
引用:

未記入さんの書き込み (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の部分にブレークポイントをかけて
動かしているのですが、ここを通らないんです。。。



InitializeComponentに定義はありますか?
なければ駆動しませんのでご注意を。
そしてこれはIDEで開発してると、たまに消されますのでご注意を。
えんぞ@?
ぬし
会議室デビュー日: 2004/07/06
投稿数: 271
お住まい・勤務地: はまっこ
投稿日時: 2005-09-12 17:31
@IT .Net Tips > DataGridコントロール

DataGridコントロールの列にボタンを表示するには?
辺りを参考にすると幸せになれるかもしれません。
ryu
常連さん
会議室デビュー日: 2005/07/05
投稿数: 30
投稿日時: 2005-09-13 09:27
trapemiyaさん、無月重造さん、えんぞ@?さん本当にありがとうございます。

皆様のアドバイスで色々とやっているんですが、上手くいきません。。。
どうやらイベントハンドラと呼ばれるものがないと思うんですが、
コーディング方法がよくわかりません。

>trapemiyaさん
リンクのWebを見させていただいたのですが、DataGridのテーブルの定義を
コーディングで行うのでしょうか?

>無月重造さん
InitializeComponentの定義はあります。
たまに消されてしまうんですか。。。

>えんぞ@?さん
リンクのWebは見させていただきました。
これはC#のコーディング方法ですよね?
ここでOnItemCommand="MyGrid_Command"という記述があるのですが、
これをVB.NETでコーディングできるのでしょうか?

本当に申し訳ありませんがよろしくお願い致します。
無月 重造
ベテラン
会議室デビュー日: 2003/12/18
投稿数: 67
投稿日時: 2005-09-13 10:22
引用:

未記入さんの書き込み (2005-09-13 09:27) より:

リンクのWebは見させていただきました。
これはC#のコーディング方法ですよね?
ここでOnItemCommand="MyGrid_Command"という記述があるのですが、
これをVB.NETでコーディングできるのでしょうか?




C#でもVB.NETでも、あそこで紹介されている例は
.NET FrameWorkのAPIがベースになっているので、
記述の方法をVB.NETにあわせればいけるはずですよ。

ただ、VB.NETでコーディングしたことはないので「いけます」と断言はできませんが(汗

# NTEってなんじゃい… orz
_________________
人の振り見て我が振りなおせ。

[ メッセージ編集済み 編集者: 無月 重造 編集日時 2005-09-13 10:24 ]
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2005-09-13 11:00
引用:

未記入さんの書き込み (2005-09-13 09:27) より:
>trapemiyaさん
リンクのWebを見させていただいたのですが、DataGridのテーブルの定義を
コーディングで行うのでしょうか?


そうです。私が示したリンク先に、
コード:
<asp:DataList id="ItemsList"
           GridLines="Both"
           CellPadding="3"
           CellSpacing="0"           
           OnItemCommand="Item_Command"
           runat="server">


という記述があると思うのですが、OnItemCommand="Item_Command"がそれに相当します。未記入さんの例ですと、
OnItemCommand="DataGrid_ItemCommand"
となります。
これと同じことを行うには、DataGridを右クリックして表示されるプロパティから、ItemCommandのイベントプロシージャを指定してもかまいません。

注意すべき点として、ItemCommandイベントは、DataGrid上の他のボタンからも呼び出されてしまいますので、
If e.CommandName = "hoge" Then
という条件文が一般的に必要となります。

todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-09-13 11:57
> どうやらイベントハンドラと呼ばれるものがないと思うんですが、
> コーディング方法がよくわかりません。

VS.NETならば..
DataGridのプロパティで雷アイコンをクリック。
ItemCommandをダブルクリック。
コードが自動生成されます。

> リンクのWebは見させていただきました。
> これはC#のコーディング方法ですよね?
> ここでOnItemCommand="MyGrid_Command"という記述があるのですが、
> これをVB.NETでコーディングできるのでしょうか?

VB.NETでも同じです。
デザインでOnItemCommandメソッドを指定する方法とコードでItemCommandイベントハンドラを指定する方法があります。
インラインコードでは前者、コードビハインドでは後者の方法で書くのが一般的です。
@IT .NET Tips のサンプルはインラインコードなので、VS.NETで使う時にコードビハンド化する必要があります。

DataGrid.OnItemCommandメソッド
http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfSystemWebUIWebControlsDataGridClassOnItemCommandTopic.asp

DataGrid.ItemCommand イベント
http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfSystemWebUIWebControlsDataGridClassItemCommandTopic.asp

[INFO] ASP.NET コード ビハインド モデルの概要
http://support.microsoft.com/default.aspx?scid=kb;ja;303247
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-09-13 13:13
NAL-6295です。

DataGridのBindをPage_Loadで行っているが、IsPostBackによる処理の振り分けをしていない。

という事は無いですか?

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