- PR -

動的コントロール(チェックボックス)のイベントがハンドリングできません

1
投稿者投稿内容
sho
会議室デビュー日: 2004/07/27
投稿数: 5
お住まい・勤務地: 横浜市
投稿日時: 2004-08-24 15:26
こんにちわ。sho@初心者です。
ASP.NET(VB.NET)で、Webアプリケーションの開発をしています。

ここ数日、困っていることがあるのですが、Tableに動的に作成しているチェックボックスのOnCheckedChangeイベントをハンドリングしたいのですが、どうもできません。

行っていることは、ユーザコントロールにおいてあるTableに、TableのPre-Renderのタイミングでチェックボックスを追加していて、その際にAddHandlerメソッドを使って、イベントハンドラを指定しています。以前、IDプロパティが重複していたためハンドリングできていなかったということがあったので、それぞれのチェックボックスのIDには重複はありません。

そして、このユーザコントロールを貼り付けたテスト用のWebフォームを実行して、チェックボックスのチェックの付け外しを行っても、指定したイベントハンドラに処理がきていない状態です。なお、チェックボックスのAutoPostBackプロパティはTrueにしているので、ポストバックは発生しています。

スレッドの検索等を行って、調べてはみたのですが、自分の力不足のためかなかなか対応策が見つからなかったため、今回思い切ってスレッドを立てさせていただきました。
質問の内容に不備などありましたらご指摘いただき、何とか解決したいと思いますので、お力添えのほどよろしくお願いします。
Qoo
大ベテラン
会議室デビュー日: 2003/04/08
投稿数: 121
投稿日時: 2004-08-24 16:12
こんにちは。

以下のところが参考になるかもです。(^^)/

http://support.microsoft.com/default.aspx?scid=kb;ja;317515
sho
会議室デビュー日: 2004/07/27
投稿数: 5
お住まい・勤務地: 横浜市
投稿日時: 2004-08-24 16:31
Qoo様 早速のお返事ありがとうございます。

リンク先のページを読ませていただきましたが、残念ながらチェックボックスの数が一定数ではないため、こちらのページにあるようにあらかじめチェックボックスの変数をWithEventsを付けて宣言しておくということができません。(それが理由でAddHandlerを使用しているのですが。)


わかりにくいところもあるかと思うので、コントロールの概要を書いておきます。

・コントロールの目的:検索条件を作成するための項目を設定する
・動作:プロパティに設定されているデータの種類から、使用できる検索項目のリストを作成して、Page-Loadのイベントで表示用のデータを作成しています。そして、Pre-Renderでそのデータをもとに選択用のチェックボックスと検索項目名をテーブルに追加していくという処理を行っています。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-08-24 16:46
NAL-6295です。

直接的な回答ではないかもしれませんが・・・

CheckBoxListコントロールは使えないのでしょうか。
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-08-24 16:50
 コントロールの作成をPreRenderで行っているからです。

 このページを参考に、メソッドが実行される順序、そのメソッドで行われることを、常に意識してください。

 不特定数のコントロールを追加することについてはこちらのスレッド。
sho
会議室デビュー日: 2004/07/27
投稿数: 5
お住まい・勤務地: 横浜市
投稿日時: 2004-08-24 17:33
Qoo様、NAL-6295様、Jitta様 ありがとうございます。

PreRenderに書いていた処理をLoadイベントの中に移すことで、イベントのハンドリングはできるようになりました。
これからも、何かありましたらよろしくお願いします。

引用:

NAL-6295さんの書き込み(2004-08-24 16:46)より:
CheckBoxListコントロールは使えないのでしょうか。


まだ、使ったことがないので時間を見つけて、学んでみます。
1

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