- PR -

ボタンのイベント

1
投稿者投稿内容
否かっぺい
常連さん
会議室デビュー日: 2003/02/10
投稿数: 48
投稿日時: 2003-02-10 11:05
asp.netでvb.netを使ってプログラムを開発しています。
page_load時にwebコントロールのテーブルに行を作成し、
各行にボタンを入れたいのですが
ボタンのイベントの記述の仕方がわかりません。
何かよい方法をご教授願います。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2003-02-10 13:03
Tableではなく、DataListやDataGridを使ってみてはどうでしょう。
否かっぺい
常連さん
会議室デビュー日: 2003/02/10
投稿数: 48
投稿日時: 2003-02-10 13:19
ご返答ありがとうございます。
DataListやDataGridの方が簡単にできるのでしょうか?
Tableではできないのでしょうか?
よろしくお願いします。
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-02-10 13:40
DataGridを使用する際の利点なら以下のようなことでしょう。

>page_load時にwebコントロールのテーブルに行を作成し、
>各行にボタンを入れたいのですが
VS.NETをご使用であれば、行生成時にいちいちボタンを作らなくても、
プロパティビルダで簡単に設定できます。

>ボタンのイベントの記述の仕方がわかりません。
ボタンクリック時にどの行が選択されたのかが簡単に分かります。

例えば、削除ボタンを追加した場合

Private Sub DataGrid1_Delete(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)

というメソッドを作成すると、

e.Item.Cells(0).Text

で押下したボタンの行の情報を取得することが出来ます。

#ただし、予め作成したDataGridのボタンに「Delete」というコマンド名を
 入れてあげなくてはいけません。
<asp:ButtonColumn Text="削除" ButtonType="PushButton" CommandName="Delete">
  <ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:ButtonColumn>

テーブルで作成されることにこだわっていらっしゃるようですが、
なにか理由でもあるのでしょうか?
どこから情報を取得して、どういう手順で表示したいのか等の詳細が分かりませんが、
ややこしい手順で作成しない限り、DataGridをお勧め致します。
(ちなみに、DataListは使ったことがないので良く分からないですが・苦笑)

[ メッセージ編集済み 編集者: まゆりん 編集日時 2003-02-10 13:46 ]
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2003-02-10 13:44
>page_load時にwebコントロールのテーブルに行を作成し、各行にボタンを・・・

ということは、動的に行を作りたいということですよね。(その時によってセル内の内容が変わったり、行の数が変わったり。)
そして各行にボタンを入れたいと言うことは、ユーザーに行の指定をさせたいということですよね?

Microsoftは、そのような動作をさせたい人が沢山いるだろうと思い、そのような機能を簡単に実装できる仕組みを作りました。
それがDataListやDataGridです。(テーブル形式でないならRepeaterというコントロールもあります)
ということですので、一つ目の質問の答えは「簡単にできる」となります。

二つ目の「Tableではできないのか」ですが、テーブルのセルを表すTableCellクラスを軽く調べてみましたが、ボタン等コントロールの設定の仕方は分かりませんでした。
もしかするとコントロールを設定する方法があるのかも知れませんが、結局それぞれのボタンのイベントなどを扱うコードも打ち込まなければならないことを考えると、かっぺいさんのなさりたい事の実現はDataListやDataGrid等でやるべきです。
否かっぺい
常連さん
会議室デビュー日: 2003/02/10
投稿数: 48
投稿日時: 2003-02-10 13:56
一郎さん、まゆりんさんご返答ありがとうございました。

特にTableにこだわってる訳ではないので、DataGridを勉強して使用してみようと思います。
またわからない事がありましたら、その時はよろしくお願いします。
1

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