2015-07-28 2 views
4

У меня есть сайт, на котором хранятся данные в сеансе, а на третьей странице отображаются записи, введенные на 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> 

Pg1 код за

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

Pg2 HTML

<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

'back button, но когда он щелкнут, я не знаю, как повторно отобразить введенную запись как потерянную.' Что потеряно и где оно должно отображаться? Вы имеете в виду, что 'txtData1' в стр. 1 не показывает значение, введенное до того, как была нажата кнопка «Назад»? – Disappointed

+0

просто сохраните 'Session [" pg2 "] = txtData2.Text;' на вашем втором обработчике кнопки страницы и затем повторно заселите страницу 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

, вы можете использовать приведенную выше логику внутри своего pg2.cs, чтобы отобразить существующее значение сеанса, когда вы переходите от pg1.aspx к pg2.aspx –