アプリ版:「スタンプのみでお礼する」機能のリリースについて

ASP.NET4.0で、WEBシステムを開発しています。
デスクトップアプリの経験はありますが、WEBの経験はあまりないです。
TextBoxのTextChangedイベントハンドラを作成し、AutoPostBack=trueにして、
サーバ側で処理するようにしているのですが、その際、なぜかその近くに配置している
ボタンのClickイベントハンドラにも来てしまっています。
VisualStudio2010でデバックして発覚しました。
それぞれ、別々のUpdatePanelで囲っています(UpdateMode=Conditional)。
PostBack時、押してもいないボタンのClickイベントに来てしまうようなことがあるのでしょうか。
(Enterキー押下で何か発生している?)
UpdatePanelを使ってページを作成する際、注意点などはありますでしょうか。
よろしくお願いします。

A 回答 (1件)

> PostBack時、押してもいないボタンのClickイベントに来てしまうようなことがあるのでしょうか。



プログラムの記述によってはあり得ます。
Webはクライアント(ブラウザ)とサーバーがつねに繋がっているわけではないですから、イベントを発生させるためにASP.NETはかなり無茶なことしてます。
具体的にはVeiwStateに以前の状態を格納しておいて、ブラウザからのリクエストとViewStateの中身を比較してイベント発生させてます。
なので、このイベントを発生させる条件を満たしてしまう状態をたまたまつくりこんでしまうと、予想外のイベントが発生することもあり得ます。

ソースレベルでしっかり解析しないと解答できる人はいない話になってそうな。。。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
先日まで別案件で出張していました。
> なので、このイベントを発生させる条件を満たしてしまう状態をたまたまつくりこんでしまうと、
> 予想外のイベントが発生することもあり得ます。
そういう状況を想定してプログラムの構成を考えていかないといけませんね。
きれいなプログラムならそのようなことはないのかも知れませんが...
HTML5など、新しい技術がいろいろ出てきているので、もっと幅広く勉強していきます。
ありがとうございました。

お礼日時:2014/04/01 15:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!