在ASP.NET服务器控件中,所有的按钮默认都是submit类型,意味着能够激发并提交表单。
当页面被运行时,此时网页《首次加载》,当用户操作让表单产生submit时,服务器会刷新整个页面,会对当前页面再次加载,这就是“回发”。
也就是说网页都会激发一个Page_Load事件。
看一个例子:
protected void Page_Load(object sender,EventArgs e)
{
this.TextBox1.Text = "请输入";
}
protected void btnCopy_Click(object sender,EventArgs e)
{
this.TextBox2.Text = this.TextBox1.Text.Trim();
}
我们希望的结果是通过按钮把第一个文本框中的内容复制给第二个文本框,但运行上面代码时,不管上面输入什么,文本框2只会显示“请输入”。对此,我们可以通过Page对象的IsPostBack属性解决问题:
protected void Page_Load(object sender,EventArgs e)
{
if(!IsPostBack) //首次加载
{ this.TextBox1.Text = "请输入"; }
else //回发
{ }
}
protected void btnCopy_Click(object sender,EventArgs e)
{
this.TextBox2.Text = this.TextBox1.Text.Trim();
}