none
変数の保持につぃて RRS feed

  • 質問

  • ASP.NET(3.5)でVBで開発してます。
    ページAからページBをServer.Transferで呼び出して
    います。
    パラメータは、 Context.Itemsで設定してページBのprivate
    変数に設定しています。

    ページBのボタンがあり、ボタン押下で渡されたパラメータを
    使用したいのですが、押下時は、Context.Itemsのデータもprivate変数の
    データもnothingとなり、パラメータを使用できません。

    このような場合は、どのようにデータを保持したらよろしいでしょうか?

    よろしくお願いします

    2009年6月9日 0:20

回答

  • ページAからページBへの遷移時については、Context.Itemsに入れたデータの受け渡しが可能ですね。
    で、そこでページBが表示され、ボタンが押されるんでしょうけど、この時点で一度ポストバックが発生します。

    ページBがブラウザに表示される、ということはサーバ上のPageのインスタンスやContextも一度クリアされますので、
    Contextの中のデータやprivateな変数の内容もクリアされるのが当然の動きですね。

    いろんなやり方がありますが、このような場合だと、ViewStateにデータを保持するのがいいかなぁ。。。


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    • 回答としてマーク sk7474 2009年6月17日 9:26
    2009年6月9日 1:47
  • ViewState については、次の URL が分かりやすいと思います。

     @IT:.NETエンタープライズWebアプリケーション開発技術大全 Webアプリケーションの状態管理
     http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp03/entwebapp03_02.html

     10 行でズバリ !! ViewState の利用 (VB)
     http://msdn.microsoft.com/ja-jp/events/dd279514.aspx
    • 回答としてマーク sk7474 2009年6月17日 9:26
    2009年6月9日 2:29
  • サーバへのラウンドトリップ間やページ間のデータのやり取りとしては、全体的な説明として、以下の
    サイトが参考になるのではと思います。

    ASP.NET の状態管理の概要
    http://msdn.microsoft.com/ja-jp/library/75x4ha6s.aspx


    その他、あまり推奨されないという話を聞きますが、以下のような方法もあります。

    ページ間ポストバックでポスト元ページの情報に簡単にアクセスするには?
    http://www.atmarkit.co.jp/fdotnet/dotnettips/409asppostback2/asppostback2.html

    • 回答としてマーク sk7474 2009年6月17日 9:26
    2009年6月9日 15:18

すべての返信

  • ページAからページBへの遷移時については、Context.Itemsに入れたデータの受け渡しが可能ですね。
    で、そこでページBが表示され、ボタンが押されるんでしょうけど、この時点で一度ポストバックが発生します。

    ページBがブラウザに表示される、ということはサーバ上のPageのインスタンスやContextも一度クリアされますので、
    Contextの中のデータやprivateな変数の内容もクリアされるのが当然の動きですね。

    いろんなやり方がありますが、このような場合だと、ViewStateにデータを保持するのがいいかなぁ。。。


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    • 回答としてマーク sk7474 2009年6月17日 9:26
    2009年6月9日 1:47
  • ありがとうございます。
    初心者でよくわからないのですが、ViewStateとは、
    VSのIDEのデザイン時のツールボックスの隠しフィールド
    のことでしょうか?


    基本的なことですいません。
    2009年6月9日 2:06
  • ViewState については、次の URL が分かりやすいと思います。

     @IT:.NETエンタープライズWebアプリケーション開発技術大全 Webアプリケーションの状態管理
     http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp03/entwebapp03_02.html

     10 行でズバリ !! ViewState の利用 (VB)
     http://msdn.microsoft.com/ja-jp/events/dd279514.aspx
    • 回答としてマーク sk7474 2009年6月17日 9:26
    2009年6月9日 2:29
  • サーバへのラウンドトリップ間やページ間のデータのやり取りとしては、全体的な説明として、以下の
    サイトが参考になるのではと思います。

    ASP.NET の状態管理の概要
    http://msdn.microsoft.com/ja-jp/library/75x4ha6s.aspx


    その他、あまり推奨されないという話を聞きますが、以下のような方法もあります。

    ページ間ポストバックでポスト元ページの情報に簡単にアクセスするには?
    http://www.atmarkit.co.jp/fdotnet/dotnettips/409asppostback2/asppostback2.html

    • 回答としてマーク sk7474 2009年6月17日 9:26
    2009年6月9日 15:18
  • こんにちは。中川俊輔です。

    皆様、いつも回答ありがとうございます。

    lucky1さん、フォーラムのご利用ありがとうございます。
    その後いかがでしょうか?疑問は解決しましたか?
    追加の質問等ありましたら、ぜひ投稿してください。

    また、勝手ながら有用な情報と思われる回答へ回答マークをつけさせていただきました。

    今後ともフォーラムをよろしくお願いします。
    それでは!
    マイクロソフト株式会社 フォーラム オペレータ 中川 俊輔
    2009年6月17日 9:28