どっとねっとふぁん

C# Tips And Samples
in 検索

19.ページ間のデータ渡し(パブリックなプロパティ)

最新の投稿は、投稿日時: 06-23-2005, 4:54 午後 投稿者: ono です。スレッドには 0 件の返答があります。
投稿のソート: 前へ 次へ
  •  06-23-2005, 4:54 午後 65

    19.ページ間のデータ渡し(パブリックなプロパティ)

    Server.Transferでページを遷移する場合にはパブリックなプロパティを利用してデータを次のページに渡すことが可能です。

    Page1.aspx
    -------------------------------------------------------
    <%@ Page Language="C#" %>
    <html>
    <head>
    <script runat="server">
    public string InputText
    {
        get { return textbox1.Text; }
    }
    
    void button_Click(Object sender, EventArgs e) 
    {
        Server.Transfer("Page2.aspx");
    }
    </script>
    </head>
    <body>
    <form id="myForm" runat="server">
    このページはPage1です<br />
    <asp:textbox id="textbox1" runat="server" /><br />
    <asp:button text="Page2へ" OnClick="button_Click" runat="server" />
    </form>
    </body>
    </html>
    
    -------------------------------------------------------
    Page2.aspx
    -------------------------------------------------------
    <%@ Page Language="C#" %>
    <%@ Reference Page="Page1.aspx" %>
    <html>
    <head>
    <script runat="server">
    void Page_Load(Object sender, EventArgs e) 
    {
        Page1_aspx p1 = (Page1_aspx) Context.Handler;
        label1.Text = "渡された文字列:" + p1.InputText;
    }
    </script>
    </head>
    <body>
    このページはPage2です<br />
    <asp:label id="label1" runat="server" />
    </body>
    </html>
    
    -------------------------------------------------------

    Server.Transferの場合、Page1.aspxとPage2.aspxのインスタンスがサーバ上に同時に存在することになるため、Page1.aspxのインスタンスが持つデータをPage2.aspxから利用できる、のだと思います。。。たぶん。。。
    詳しくはドキュメントの「ページ間でサーバー コントロール値を渡す」という項目を確認してください。

    なお、Server.Transferを利用する場合にContext.Itemsにキーと値を追加して利用する方法を紹介している書籍もあります。
    それで動作することは確認したのですが、自分なりの理屈付けがきちんとできないので、ここでは紹介しないことにします。


    あおい情報システム株式会社
     小野修司(どっとねっとふぁん)
RSS ニュースフィードで参照
SkinName:iroha_CS2
Powered by Community Server, by Telligent Systems