最近看了点有关于asp.net ajax的知识,顺便写了一个很常用的省市区三级联动做练习。 /// <reference name="MicrosoftAjax.js"/> function GetSheng() //绑定省 { FjdcWS.GetSheng(SelectBind, null, "GetSheng"); //FjdcWS为自己写的一个WebService的类名 function GetShi(selectID) //绑定市 { var param = selectID.options[selectID.selectedIndex].value; //获取省的值,用于市做联动 switch(param) //处理特殊城市 { case "710000": SetSpecialCity("Select2", "台湾", "710000"); SetSpecialCity("Select3", "台湾", "710000"); break; case "810000": SetSpecialCity("Select2", "香港", "810000"); SetSpecialCity("Select3", "香港", "810000"); break; case "820000": SetSpecialCity("Select2", "澳门", "820000"); SetSpecialCity("Select3", "澳门", "820000"); break; default: FjdcWS.GetShi(param, SelectBind, null, "GetShi"); } } function GetQu(selectID) //绑定区 { var param = selectID.options[selectID.selectedIndex].value; //获取市的值,用于区做联动 FjdcWS.GetQu(param, SelectBind, null, "GetQu"); } function SelectBind(result, userContext) { var selectID; switch(userContext) { case "GetSheng": selectID = $get("Select1") ; SetOptionsLength("Select2", 1); //绑定省前将会清除市,区 SetOptionsLength("Select3", 1); break; case "GetShi": selectID = $get("Select2"); SetOptionsLength("Select2", 1); //绑定市前也会清除市,区之前绑定过的数据 SetOptionsLength("Select3", 1); break; case "GetQu": selectID = $get("Select3"); break; } var i = 1; for(var item in result) { var option = new Option(result[item].MC,result[item].DM); //遍历传递过来的IList selectID.options[i] = option; i++; } } function SetSpecialCity(selectID, mc, dm) //设定特殊城市选项 { $get(selectID).options[1] = new Option(mc,dm); $get(selectID).selectedIndex = 1; } function SetOptionsLength(selectID, length) //设置下拉选项长度 { $get(selectID).options.length = length; }