posts - 101,  comments - 476,  trackbacks - 44

      关于无刷新联动,目前实现的方法有很多种,可以使用XMLHttpRequest对象来实现,也可以采用Ajax Library,另外也可以使用AjaxControlToolkit里的控件来实现.刚刚这些天在一个项目里使用到了这个功能.下面简单介绍下实现的思路.希望对初学者在学习上有所帮助.
    
     通常联动又分静态联动(数据不变)和动态联动(数据会变动),比如省市区县这里固定数据就是很少变动的。又比如一个公司里,下面分得有不同的部分,各部门下又可能有不能的小组......这样的关系,各个小组都有可能随时都会变动的,撤消也可能会增加小组等。下面我就一动态联动简单介绍下。

准备工作:
 ● 建立数据库

Code

 ● 初始化数据
     

 ● 建立相关类和WebService

City
District
AjaxPattern.WebService

一、使用XMLHttpRequest实现
     建立两个aspx文件,AjaxClient.asp,AjaxServer.aspx,下面是两个文件的CS代码定义:

 1public partial class AjaxClient : System.Web.UI.Page
 2{
 3    protected void Page_Load(object sender, EventArgs e)
 4    {
 5        if (!IsPostBack)
 6        {
 7            this.ddlCitys.DataSource = new WebService().GetCitys();
 8            this.ddlCitys.DataTextField = "CityName";
 9            this.ddlCitys.DataValueField = "CityID";
10            this.ddlCitys.DataBind();
11            ddlCitys.Items.Insert(0new ListItem("--请选择--""0"));
12            ddlDistricts.Items.Insert(0new ListItem("--请选择--""0"));
13
14            this.ddlCitys.Attributes.Add("onchange""getDistrictByCityID(this.value);");
15            this.ddlDistricts.Attributes.Add("onchange""displayResults();");
16        }

17    }

18}

     在AjaxClient.aspx里放置了两个下拉列表控件,一个用来显示城市,一个用来显示区。在AjaxClient的服务端我们为城市绑定好数据,这里是通过调用WebService里的GetCitys()得到的一个数组,详细可以看上面的WebService的详细定义代码,这里我们还为这两个控件设置了客户端事件及响应事件的方法。下面我们看看AjaxServer.aspx的定义:

 1public partial class AjaxServer : System.Web.UI.Page
 2{
 3    protected void Page_Load(object sender, EventArgs e)
 4