2

我希望我在 pageA 的文本框中输入的数据可以在 pageB 上访问

例如:用户在页面 A 的文本框中输入他们的姓名

B页说你好(他们在文本框中输入的信息)

我听说这可以通过使用会话来完成,但我不知道如何。

有人可以告诉我如何设置会话以及如何在其中存储数据吗?谢谢!

4

5 回答 5

5
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(); 
于 2009-05-22T17:30:11.323 回答
4
// Page A on Submit or some such
Session["Name"] = TextBoxA.Text;

// Page B on Page Load
LabelB.Text = Session["Name"];

默认情况下启用会话。

于 2009-05-22T17:28:13.307 回答
1

是的,你可以像 JohnOpincar 所说的那样做,但你不需要这样做。

您可以使用跨页回发。在 ASP.Net 2.0 中,跨页面回发允许发布到不同的网页,从而产生更直观、结构化和可维护的代码。在本文中,您可以探索跨页面回发机制的各种选项和设置。

您可以使用目标页面中的以下代码访问源页面中的控件:

protected void Page_Load(object sender, EventArgs e)
{
    ...
    TextBox txtStartDate = (TextBox) PreviousPage.FindControl("txtStartDate ");
    ...
}
于 2009-05-22T17:35:16.340 回答
0

您可以使用会话来执行此操作,但如果您是 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;
    }
}
于 2009-05-22T17:36:24.390 回答
0

甚至还有更简单的方法。使用查询字符串:

在页面 A 中:

<form method="get" action="pageB.aspx">
    <input type="text" name="personName" />
    <!-- ... -->
</form>

在 B 页:

Hello <%= Request.QueryString["personName"] %> !
于 2009-05-22T21:03:56.140 回答