У меня есть форма asp.net с несколькими текстовыми полями и кнопка ссылки, которая перенаправляется на другую страницу. вот моя форма:
<table>
<tr>
<td >
<asp:TextBox ID="TextBox_Name" runat="server" Width="100%"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="TextBox_FatherName" runat="server" Width="100%"></asp:TextBox>
</td>
<td>
<asp:LinkButton ID="LinkButton_BirthPlace" runat="server" OnClick="LinkButton_BirthPlace_Click" >Search</asp:LinkButton> </td>
</tr>
и это мой метод для кнопки ссылки:
protected void LinkButton_BirthPlace_Click(object sender, EventArgs e)
{
Response.Redirect("~/Profile/CitySearch.aspx");
}
моя проблема: когда я ввожу значение в свои текстовые поля, а затем нажимаю кнопку ссылки, перенаправляется на страницу CitySearch.aspx, и когда я возвращаюсь на базовую страницу, мои значения в текстовых полях были удалены. Мне нужны те значения, которые я вводил. Что мне делать?
Вам необходимо повторно заполнить свои текстовые поля своей информацией из сеанса. Поместите метод, аналогичный этому на вашей “базовой странице”,
Psuedocode:
protected void Page_Load(object sender, EventArgs e)
{
string Birthplace = Session["Birthplace"].ToString();
MyBirthplaceTextBox.Text = Birthplace;
}
Для хранения нескольких фрагментов информации вам понадобятся несколько значений сеанса. Вы также захотите закодировать некоторые проверки, чтобы убедиться, что переменные сеанса не являются нулевыми, и предпринимайте соответствующие действия.
Попробуйте это на первой странице:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (Session["search"]!=null)
{
TextBox_Name.Text = Session["search"].ToString();
}
}
}
Попробуйте это,
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack==false)
{
if (Session["search"]!=null)
{
TextBox_Name.Text = Session["search"].ToString();
}
}
}
protected void LinkButton_BirthPlace_Click(object sender, EventArgs e)
{
Session["search"] = TextBox_Name.Text;
Response.Redirect("~/Profile/CitySearch.aspx");
}