我希望我在pageA上的文本框中输入的数据可以在pageB
上访问例如:用户在第A页的文本框中输入他们的姓名
第B页说Hello(他们在文本框中输入的信息)
我听说这可以通过使用会话来完成,但我不知道如何。
有人可以告诉我如何设置会话以及如何在其中存储数据? 谢谢!
答案 0 :(得分: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();
答案 1 :(得分:4)
// Page A on Submit or some such
Session["Name"] = TextBoxA.Text;
// Page B on Page Load
LabelB.Text = Session["Name"];
默认情况下启用会话。
答案 2 :(得分:1)
是的,你可以像JohnOpincar那样做,但你不需要。
您可以使用跨页回发。在ASP.Net 2.0中,跨页回发允许发布到不同的网页,从而产生更直观,结构化和可维护的代码。在this article中,您可以浏览跨页回发机制的各种选项和设置。
您可以使用目标页面中的以下代码访问源页面中的控件:
protected void Page_Load(object sender, EventArgs e)
{
...
TextBox txtStartDate = (TextBox) PreviousPage.FindControl("txtStartDate ");
...
}
答案 3 :(得分: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;
}
}
答案 4 :(得分:0)
甚至有一种更简单的方法。使用查询字符串:
在第A页:
<form method="get" action="pageB.aspx">
<input type="text" name="personName" />
<!-- ... -->
</form>
在第B页:
Hello <%= Request.QueryString["personName"] %> !