一、回发的概念
1、页面呈现过程:当我们在浏览器发送某个网页地址时,浏览器便向服务器发送该页面请求,服务器收到页面请求后,
便在服务端形成页面,然后再以html形式向浏览器发送。浏览器在收到该页面的html文本后,便将页面呈现出来。
2、回发:当某个页面呈现后,在使用该页面某些控件时,会再次向服务端发送该页面请求,我们把这种发回服务器请求的行为,
叫做页面回发,即:PostBack。
二、引起回发的网页事件
1、单击按钮事件:当页面含有按钮控件时,只要我们单击按钮,便会自动引起页面回发。即:当用户单击按钮控件时,该页回发到服务器。
默认情况下,该页回发到其本身重新生成相同的页面并处理该页上控件的事件处理程序。所以,重新生成的页面是Button_click代码处理
后的页面。如:下例,页面可视部分包含一个名为Result的Label控件、一个名为YourName的TextBox控件和一个名为SubmitInformation,其代码部分如下:
public partial class Demos_ControlsDemo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void SubmitInformation_Click(object sender, EventArgs e)
{
Result.Text="Your name is: "+ YourName.Text;
}
}
那么,当我们单击SubmitInformation按钮后,便会引发一个回发,服务器回发在处理完按钮控件事件:Result.Text="Your name is: "+ YourName.Text后,将我们输入
在TextBox中的文本,如Test,赋给Label控件,最后页面中Label(Result)中呈现的便是Your name is:Test.
2、控件Changing或Changed事件+控件.AutoPostBack=true;会引发页面回发。
如:TextBox的OnTextChanged事件,在设定其.AutoPostBack=true后,会引发一个页面回发事件。下面是用三个TextBox控件求和的一个例子。该例子,在完成TextBox2(number2)
中数字的输入后,会自动引发一个回发事件,然后,在TextBox3中显示TextBox1(number1)和TextBox2(number2)中输入的数字之和。如:TextBox1.Text=2,TextBox2=3,那么,
在完成数字"3"的输入后,TextBox3的值5便会自动显示出来。这就是因为回发的的缘故.
protected void TextBox2_TextChanged(object sender, EventArgs e)
{
int i=0, m=0, j=0;
i=Convert.ToInt32(Number1.Text);
m = Convert.ToInt32(Number2.Text);
j = i + m;
TextBox3.Text = Convert.ToString(j);
}
另外,除了TextBox控件的OnTextChanged的事件会引发页面回发外,其他还有DropDownList控件的
OnSelectedIndexChanged、ListBox的OnSelectedIndexChanged等有关控件的Changing或Changed
事件,在这些控件的"AutoPostBack=true"时,都会引起回发。