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禁止了,达到了只有页面第一次加载的时候才初始化,其他的都不进行初始化操作~!!