- PR -

[ASP.net] DropDownListとLinkButtonの配置画面へ戻る(history.Back)

1
投稿者投稿内容
えんぞ@?
ぬし
会議室デビュー日: 2004/07/06
投稿数: 271
お住まい・勤務地: はまっこ
投稿日時: 2004-07-14 18:50
1.WebForm1.aspx画面にDropDownListとLinkButtonを配置
2.WebForm2.aspx普通の画面
3.WebForm1.aspxのDropDownListのAutoPostBackにてWebForm2.aspxへResponse.Redirect
4.WebForm2.aspxにてBrowserの戻るボタン押下(history.Back)
5.WebForm1.aspxにてLinkButton押下

とすると「5.」の操作を行った場合、サーバサイドにて
  なぜか、DropDownList_SelectedIndexChangedイベント発生
  その次に、LinkButton_Clickイベント発生
となってしまいます。
LinkButton_Clickイベントのみを期待していたのですが
DropDownList_SelectedIndexChangedイベントまで発生してしまうのは、
なぜなんでしょう?
エンドユーザへは「history.Backは動作保証外!」とは謳ってま
すが、何をしでかすか解らないユーザが...
このような2重にイベントが発生しない回避方法等あれば、ご教授願います。

[環境]Windos2000+ASP.NET+SQLServer2000+IE5.5
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-07-14 19:39
えんぞ@見習さん、こんばんは。

引用:

DropDownList_SelectedIndexChangedイベントまで発生してしまうのは、
なぜなんでしょう?


戻るボタンを押して元の画面を表示すると、3番の操作で選択したアイテムがそのまま選択されていませんか?
本来は3番のポストバックで、DropDownList のどのアイテムが選択されているかが ViewState に保持されます。しかし、戻るボタンを使っているので ViewState には初期値しか保持されておらず、5番のポストバック時に ViewState の値と DropDownList の値とが異なっているために、SelectedIndexChanged イベントが発生してしまうのだと思います。
えんぞ@?
ぬし
会議室デビュー日: 2004/07/06
投稿数: 271
お住まい・勤務地: はまっこ
投稿日時: 2004-07-14 23:12
きくちゃんさん、ご回答ありがとうございます。
引用:

戻るボタンを押して元の画面を表示すると、3番の操作で選択したアイテムがそのまま選択されていませんか?


仰る通り、history.back後のDropDownListは選択されたままの状態です。
ということは、__doPostBackにて
 theform.__EVENTTARGET.value = eventTarget;
となってるにも係わらず・・・、やはりViewStateと比較してSelectedIndexChanged
をRaiseしてるってことになるのですかね...(^^;

対処方法としては、history.backが発生した場合は
 1.PostBackにて画面を再表示
 2.JavaScriptでDropDownListのselect値を替える
といったとこに、落ち着くのでしょうか...。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-07-15 09:44
えんぞ@見習さん、お早うございます。

引用:

ということは、__doPostBackにて
 theform.__EVENTTARGET.value = eventTarget;
となってるにも係わらず・・・、やはりViewStateと比較してSelectedIndexChanged
をRaiseしてるってことになるのですかね...(^^;



MSDNライブラリの ListControl.SelectedIndexChanged イベントの説明によれば、

引用:

リスト コントロール内の選択項目がサーバーへのポスト間で変更された場合に発生します。


と、ありますから、発生するでしょうね。

引用:

対処方法としては、history.backが発生した場合は


「戻る」ボタンの扱いについては、過去にも色々と話題になっていますので、探してみて下さい。
えんぞ@?
ぬし
会議室デビュー日: 2004/07/06
投稿数: 271
お住まい・勤務地: はまっこ
投稿日時: 2004-07-16 10:57
きくちゃんさん、度々有難う御座います。
引用:

「戻る」ボタンの扱いについては、過去にも色々と話題になっていますので、探してみて下さい。



IEでのキャッシュ無効化
で逃げの道に入ることにしました。(^^;
(その他参考にした記事)
遅レスになってしまいましたが、有難う御座いました。
1

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