ページ A のテキスト ボックスに入力したデータをページ B でアクセスできるようにしたい
例: ユーザーはページ A のテキスト ボックスに自分の名前を入力します。
ページ B には「こんにちは」と表示されます (テキスト ボックスに入力した情報)
これはセッションを使用して達成できると聞きましたが、方法がわかりません。
セッションのセットアップ方法とデータの保存方法を教えてください。ありがとうございました!
ページ A のテキスト ボックスに入力したデータをページ B でアクセスできるようにしたい
例: ユーザーはページ A のテキスト ボックスに自分の名前を入力します。
ページ B には「こんにちは」と表示されます (テキスト ボックスに入力した情報)
これはセッションを使用して達成できると聞きましたが、方法がわかりません。
セッションのセットアップ方法とデータの保存方法を教えてください。ありがとうございました!
Session["valueName"]=value;
また
Session.Add("valueName",Object);
そして、ラベルの値を取得できます(例)
/*if String value */
Label1.Text=Session["valueName"].ToString();
また
Label1.Text=Session.item["valueName"].ToString();
また、次の方法でセッションを削除できます。
/*This will remove what session name by valueName.*/
Session.Remove( "valueName");
/*All Session will be removed.*/
Session.Clear();
// Page A on Submit or some such
Session["Name"] = TextBoxA.Text;
// Page B on Page Load
LabelB.Text = Session["Name"];
セッションはデフォルトで有効になっています。
はい、JohnOpincar が言ったようなことを行うこともできますが、その必要はありません。
クロスページ ポストバックを使用できます。ASP.Net 2.0 では、クロスページ ポストバックにより、別の Web ページへの投稿が可能になり、より直感的で構造化された保守可能なコードが得られます。この記事では、クロスページ ポストバック メカニズムのさまざまなオプションと設定を調べることができます。
ターゲット ページで次のコードを使用して、ソース ページのコントロールにアクセスできます。
protected void Page_Load(object sender, EventArgs e)
{
...
TextBox txtStartDate = (TextBox) PreviousPage.FindControl("txtStartDate ");
...
}
セッションを使用してこれを行うことができますが、ASP.NET 2.0 以降の場合は、クロス ページ ポストバックも使用できます。
http://msdn.microsoft.com/en-us/library/ms178139.aspx
if (Page.PreviousPage != null) {
TextBox SourceTextBox =
(TextBox)Page.PreviousPage.FindControl("TextBox1");
if (SourceTextBox != null) {
Label1.Text = SourceTextBox.Text;
}
}