Пользовательский ввод перезаписывается page_load во время обратной передачи между страницами
1 на исходной странице есть метод загрузки страницы, как показано ниже:
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = DateTime.Today.AddDays(1).ToShortDateString();
}
это приведет к textbox1.text для отображения завтрашней даты при отображении исходной страницы. У меня есть исходная страница кросс-пост обратно на целевую страницу, и в событии загрузки целевой страницы у меня есть
if (Page.PreviousPage != null && PreviousPage.IsCrossPagePostBack == true)
{
TextBox SourceTextBox1 = (TextBox)Page.PreviousPage.FindControl("TextBox1");
if (SourceTextBox1 != null)
{
Label1.Text = SourceTextBox1.Text;
}
}
проблема в том, что если пользователь изменяет содержимое textbox1, предположительно, label1 на целевой странице должен перехватить ввод пользователя и отобразить его, но теперь он отображает только то, что я установил в событии загрузки исходной страницы. Я понимаю, что сам постраничный пост назад жизненный цикл, но это пост-страница назад. IMO, событие загрузки исходной страницы не имеет к этому никакого отношения, но почему оно отменяет ввод данных пользователем? Любая идея.
1 ответ
Просто окружите это if(!IsPostBack)
проверять:
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
TextBox1.Text = DateTime.Today.AddDays(1).ToShortDateString();
}
}
В противном случае значение будет перезаписываться при каждой обратной передаче. Итак, когда вы Server.Transfer
это на другую страницу, это уже изменено.