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,源页面加载事件与此无关,但为什么它会覆盖用户输入?任何想法。
答案 0 :(得分:1)
使用if(!IsPostBack)
支票围绕此处:
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
TextBox1.Text = DateTime.Today.AddDays(1).ToShortDateString();
}
}
否则,每次回发都会覆盖该值。因此,当您Server.Transfer
它到另一个页面时,它已经被更改。