- PR -

Change系イベントの後にボタンClickイベントは発生しない

1
投稿者投稿内容
緑茶
常連さん
会議室デビュー日: 2003/08/17
投稿数: 32
お住まい・勤務地: 東京都
投稿日時: 2006-06-20 20:06
現在VS2005でWebアプリを開発しております。

まず画面に以下のコントロールを配置します。

・TextBox
AutoPostBack = true
TextChangedイベントを登録

・Button
Clickイベントを登録

ここでTextBoxに適当な値を入力後、フォーカスをそのままにしてButtonをクリックすると、初回はTextChangeイベントハンドラが2回呼び出された後に、Clickイベントハンドラが呼ばれます。
更に2回目以降にいたっては、TextChangeイベントハンドラは呼び出されるのですが、Clickイベントが全く呼び出されないという現象が起こってしまいます・・

MSDN上に以下のKBが挙がっているため、初回の動作はこれが原因かもしれませんが、
2回目以降の動作についても同様のバグなのでしょうか?
http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B828979

どなたかもしご存知であれば、教えて頂けると幸いです。

宜しくお願いいたします。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-06-21 01:20
TextBoxのAutoPostBackは、TextBoxの(というかinputの)onchangeが発生した時に
.NETが自動的に書いたscriptが呼ばれることによって実現されます。

引用:
ここでTextBoxに適当な値を入力後、フォーカスをそのままにしてButtonをクリックすると、初回はTextChangeイベントハンドラが2回呼び出された後に、Clickイベントハンドラが呼ばれます。
更に2回目以降にいたっては、TextChangeイベントハンドラは呼び出されるのですが、Clickイベントが全く呼び出されないという現象が起こってしまいます・・

ボタンをクリック(しようと)した時にinputのonchangeが発生しscript内でsubmitが
行われる。この場合はClickイベントは呼ばれないのが正しいですよね?
(Clickイベントが発生するかどうかは、Buttun1=ButtonみたいなPOSTパラメータが
渡るかどうかで決まるんだと思います。)

1回目はClickが発生し2回目以降は発生しないというのは必ずしもそうではないようです。
TextChangeが2回発生している時はsubmit自体が2回発生しているようですが、
何で差があるのかはよくわかりません。。。
緑茶
常連さん
会議室デビュー日: 2003/08/17
投稿数: 32
お住まい・勤務地: 東京都
投稿日時: 2006-06-21 15:08
べるさん、レスをありがとうございます。

2回目以降のClickイベントについては、確かに発生する場合と、
発生しない場合があるようです。
なんとも不思議な挙動ですが、ただそうなるとTextBoxのAutoPostBackをtrueにするときは注意が必要になるということになりますねぇ。
1

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