- - PR -
ServerChangeイベントを2度おこさないようにするには
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-12-26 12:56
ASP.net2005でWeb開発をしています。
親、子画面があり、子画面で選択した情報によって親画面にデータを表示させる処理をしています。 子画面が親画面のHiddenコントロールに「伝票番号」を入れ、親画面はHiddenコントロールのServerChangeイベントで値を表示させています。 「伝票番号」が同じでも違う情報の場合があるため子画面で親画面に値をいれた場合は常にServerChangeイベントを起こしたいので親ServerChangeイベントでHiddenコントロールの値を使用した後に値を初期化(Value="")したいと思いました。が、この初期化処理を入れると同じイベントに2度入ってしまうのです。当然といえば当然ですが、これを避ける方法はないでしょうか? EnableViewStateプロパティをTrue/Falseしたりしてみましたがうまくいきません。 どなたかご存知の方ご教授願います。 | ||||
|
投稿日時: 2007-12-26 13:11
当然でしょうか? そういう実装になっているから(無駄な再ポストバックが発生している等)そうなっているのでは。 似たような処理は過去に何例も実装して来ましたが、そういった問題で悩んだ記憶はなかったです。 | ||||
|
投稿日時: 2007-12-26 13:32
>まるくさん
ありがとうございます。 Value=""の処理をしなければServerChangeイベントは一度しか起きず、思ったとおりの動きです。 ServerChange サーバーへのポスト間で変更された場合 とはソースコードで値を""xにした場合も含まれるということですよね? この値を変えているのは子画面のJavascriptで " window.opener.document.forms[0].hdnCode.value='XXX'" という部分と 親画面の hdnCode.Value = "" だけです。以前似たような処理をされたときに初期化はどこで行っていたか覚えていらっしゃいますか? | ||||
|
投稿日時: 2007-12-26 19:44
親画面の、JavaScript で消していますか?かつ、その hidden が、AutoPostback だったりしますか?
| ||||
|
投稿日時: 2007-12-27 09:48
けいさんと同じ作りです。最小コードで確認しました。 Jitta さんのご質問点を確認されて異常がないようでしたら、新規プロジェクトを作成し、再現する最小コードを作って提示してみてください。 | ||||
|
投稿日時: 2007-12-28 13:51
Jittaさん、まるくさんありがとうございます。
>Jittaさん 親画面のサーバ側処理でValue=""としています。AutoPostBackというプロパティはありませんでした。 この処理と無関係にクライアントからサーバ側の処理<ボタンクリックイベント>を読んでいたのですが、これを削除したら2度起こることはなくなりました。 でもなぜだったのか原因がいまいちわかりません。 こんな答えですみませんが、とりあえず解決です。 いつもすばやいお返事ありがとうございます。 | ||||
|
投稿日時: 2007-12-28 15:58
> クライアントからサーバ側の処理<ボタンクリックイベント>を読んでいたのですが、
どのようにしてこれを実現していたのかわかりませんが、この処理が まるく さんが書いている「無駄な再ポストバックが発生している」処理になってたんじゃないですか? |
1