1、假如是一个webForm.aspx,页面中如果你是使用了DropDownList之类的控件。你要区分是页面第一次加载。还是点击了一个按钮之后(postback)提交回了它本身webForm.aspx。通过开发者工具可以查看到,当点击一个提交按钮之后是重新发送回了,自己的页面。
2、postback提交回来,还有分自动提交。AutoPostBack。
3、下面做一个省市连动来演示postback这个用法;
4、、、、、
5、代码清单1:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Web1.WebFromTest123 { public partial class PostBackTest : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //1、首先判断是否是提交提交会来的页面,如果是,就不进行初始化操作 if (!IsPostBack) { ListItem Beijing = new ListItem("北京", "bj");//显示的值,,编程中用到的value ddlProvince.Items.Add(Beijing); ddlProvince.Items.Add(new ListItem("河北", "hb")); ddlProvince.Items.Add(new ListItem("河南", "hn")); ddlProvince.Items.Add(new ListItem("湖南", "hunan")); } } //2、如果省的下拉列表中的值发生了变化,就会触发postback这个js方法 protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e) { //3、在加载城市之前,把第一次加载的项清除、 ddlCity.Items.Clear(); //4、获取当前选择的那个省的value string prove = ddlProvince.SelectedValue; if (prove == "bj") { ddlCity.Items.Add(new ListItem("朝阳", "hn")); ddlCity.Items.Add(new ListItem("保定", "hn")); ddlCity.Items.Add(new ListItem("丰台", "hunan")); } else if (prove == "hb") { ddlCity.Items.Add(new ListItem("北京", "hb")); ddlCity.Items.Add(new ListItem("石家庄", "hn")); ddlCity.Items.Add(new ListItem("唐山", "hunan")); } else if (prove == "hn") { ddlCity.Items.Add(new ListItem("开封", "hb")); ddlCity.Items.Add(new ListItem("郑州", "hn")); ddlCity.Items.Add(new ListItem("新乡", "hunan")); } } } }
6、其中需设置省的AutoPostBack为True,这样才会点击省的一个value,才会显示出来,,城市来~@!!
7、通过使用PostBack禁止了,达到了只有页面第一次加载的时候才初始化,其他的都不进行初始化操作~!!