2015-07-28 49 views
4

我有一个网站,它将数据存储在会话中,并在第3页上显示在pg1 & pg2上输入的条目。从上一页检索数据

但是在pg2上,有一个后退按钮,但是当它被点击时,我不知道如何重新显示输入的输入作为其丢失。

我是新来使用会话存储,所以我可能会做一些完全错误的东西,所以请告诉我,如果我是。

反正我的代码是:

PG1 HTML

<form id="form1" runat="server"> 
<div> 
    <p>pg1</p> 
    <asp:TextBox ID="txtData1" runat="server"></asp:TextBox> 
    <br /> 
    <br /> 
    <asp:Button ID="pg1button" runat="server" Text="Submit" OnClick="pg1button_Click" /> 
</div> 
</form> 

背后

protected void pg1button_Click(object sender, EventArgs e) 
{ 
    Session["pg1"] = txtData1.Text; 
    Response.Redirect("/Session/pg2.aspx"); 
} 

PG2 HTML

PG1代码
<form id="form1" runat="server"> 
<div> 
<p>pg2</p> 
    <asp:TextBox ID="txtData2" runat="server"></asp:TextBox> 
    <br /> 
    <br /> 
    <asp:Button ID="pg2button" runat="server" Text="Submit" OnClick="pg2button_Click" />&nbsp; 
    <asp:Button ID="pg2Backbutton" runat="server" OnClick="pg2Backbutton_Click" Text="Back" /> 
</div> 
</form> 

PG2后面的代码

protected void pg2button_Click(object sender, EventArgs e) 
{ 
    Session["pg2"] = txtData2.Text; 
    Response.Redirect("/Session/pg3.aspx"); 
} 

protected void pg2Backbutton_Click(object sender, EventArgs e) 
{ 
    Response.Redirect("/Session/pg1.aspx"); 
} 

Pg3中HTML

<form id="form1" runat="server"> 
<div> 
    <h1>Session State</h1> 
<p>Pg 1 data is: <%=Session["pg1"] %></p> 
<p>Pg 2 data is: <%=Session["pg2"] %></p> 
</div> 
</form> 

一切工作,因为它应该,除了我的后退按钮。使用会话的原因是,网站不会使用数据库,因为第三页会有(当我接近它时)一个按钮,它会将详细信息通过电子邮件发送到指定的电子邮件地址。

由于公司政策,我不得不去掉HTML的某些部分,所以只给出了基本的基础知识,对不起。

+0

将禁用'BackButton'是否足够呢? – 3dd

+0

'后退按钮,但当它被点击时,我不知道如何重新显示作为其丢失输入的条目。什么是丢失和应显示在哪里?你的意思是第1页中的'txtData1'没有显示在返回按钮被点击前输入的值? – Disappointed

+0

只存储'Session [“pg2”] = txtData2.Text;'在​​你的页面2后退按钮处理程序中,然后重新填充第2页,如果你有任何会话中的'pg2'否? – user3012759

回答

1

添加您pg1.cs里面的逻辑如下文件

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (txtData1.Text == string.Empty && Session["pg1"] != null) 
     { 
     txtData1.Text = Session["pg1"].ToString(); 
     } 
    } 

--SJ

+0

感谢这很好,但我现在有一个问题,如果我改变了价值一旦我点击'返回'按钮,当在pg3它仍然保留我的初始条目,而不是我更新的条目 – murday1983

+0

您需要按pg1上的提交按钮.aspx保存会话中的更改; –

+0

当您将pg1.aspx移回pg2.aspx时,您可以在pg2.cs中使用上述逻辑来显示现有会话值 –