VB.NETのWebアプリケーション開発で
ボタンクリックイベントや
テキストチェンジイベントが
取得できない場合には
まず"Handles"が記述されているかを確認します。
コントロールをHTMLで編集すると
"Handles"が消えてしまったり
"Webフォームデザイナで生成されたコード"に
きちんとデータが反映されて
いなかったりする場合があります。
また他にも原因が考えられます。
例えばチェックボックス(AutoPostBack=True)で
"CheckedChanged"のイベントを取得している場合に
①初期状態でチェックが入っていない
②JavaScriptでチェックを入れる
③チェックボックスをクリックしてチェックを外す
という処理を行うと"CheckedChanged"の
イベントは取得できません。
これはクライアント側ではチェックボックスの
中身を変更しているのですが
サーバ側ではチェックが入っていないままと
認識されるためと思われます。
この問題を回避するためには
サーバ側、またはクライアント側だけで
処理を行う必要があります。
参考までにVB.NETで
チェックボックスをチェックした場合にリストボックスを選択し、
チェックを外した場合にリストボックスの選択を全て外すという
処理を行うコードの一部を例として2つ記述しておきます。
○サーバ側で処理を行う場合
Dim b As Boolean = Me.[チェックボックス名].Checked
For i As Integer = 0 To Me.[リストボックス名].Items.Count - 1
Me.[リストボックス名].Items(i).Selected = b
Next
○クライアント側で処理を行う場合
Dim script As String
script = "var b;if(document.Form1.all
['チェックボックス名'].checked==true)
b=true;else b=false;
for(var i=0;i<" & Me.[リストボックス名].Items.Count
& ";i++) { document.Form1.all['リストボックス名']
[i].selected=b; }"
Me.[チェックボックス名].Attributes("onClick") = script
もっといい書き方もあると思いますが
とりあえず同じような処理をしてくれます。