используя сессии в asp.net - PullRequest
2 голосов
/ 22 мая 2009

Я бы хотел, чтобы данные, которые я вводил в текстовом поле на странице A, были доступны на странице B

Например: пользователь вводит свое имя в текстовое поле на странице A

на странице B написано "Привет" (информация вводится в текстовом поле)

Я слышал, что это можно сделать с помощью сеанса, но я не знаю, как.

Может кто-нибудь подсказать, как настроить сеанс и как в нем хранить данные? Спасибо!

Ответы [ 5 ]

5 голосов
/ 22 мая 2009
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(); 
4 голосов
/ 22 мая 2009
// Page A on Submit or some such
Session["Name"] = TextBoxA.Text;

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

Сеанс включен по умолчанию.

1 голос
/ 22 мая 2009

Да, вы могли бы сделать что-то, как сказал Джон Опинкар, но вам не нужно.

Вы можете использовать постбэки между страницами. В ASP.Net 2.0 кросс-страничные посты позволяют размещать сообщения на другой веб-странице, что приводит к созданию более интуитивно понятного, структурированного и удобного в обслуживании кода. В этой статье вы можете изучить различные параметры и настройки механизма обратной передачи между страницами.

Вы можете получить доступ к элементам управления на исходной странице, используя этот код на целевой странице:

protected void Page_Load(object sender, EventArgs e)
{
    ...
    TextBox txtStartDate = (TextBox) PreviousPage.FindControl("txtStartDate ");
    ...
}
0 голосов
/ 23 мая 2009

Есть даже более простой способ. Используйте строку запроса:

На странице A:

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

На странице B:

Hello <%= Request.QueryString["personName"] %> !
0 голосов
/ 22 мая 2009

Вы можете использовать сеанс для этого, но вы также можете использовать Cross Page Postback, если вы 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...