用AjaxPro实现二级联动
时间:2010-10-09 来源:The Coder.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %> <!DOCTYPE html PUBLIC "-//W3C//Dtd XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/Dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>AjaxPro实现二级联动</title> </head> <body> <form id="form1" runat="server"> <div> <table width="200" border="0" align="center" cellpadding="3" cellspacing="1" bordercolor="#FFFFFF" style="border-collapse: collapse"> <tr align="center"> <td height="20" colspan="2"> <strong>AjaxPro实现二级联动</strong> </td> </tr> <tr class="tdbg" > <td width="30%"> 省份</td> <td width="70%" align="left"> <asp:DropDownList ID="ddlStateList" runat="server" DataTextField="StateName" DataValueField="StateId"> </asp:DropDownList></td> </tr> <tr class="tdbg" > <td><strong>城市</strong></td> <td align="left"> <asp:DropDownList ID="ddlCityList" runat="server"> </asp:DropDownList></td> </tr> </table> </div> <script language="javascript" type="text/javascript" defer="defer"> function ShowCity(id) { var res=Test.GetCityList(parseInt(id)).value; var ddl=document.getElementById("<%=ddlCityList.UniqueID %>"); ddl.length=0; if(res) { //res是服务器返回的一个List<City>集合 for(var i=0;i<res.length;i++) { ddl.options.add(new Option(res[i].CityName,res[i].CityId)); //从上面可以看出可以直接调用List<City>集合中的元素和它们的属性 } } } </script> </form> </body> </html> using System; using System.Data; using System.Configuration; using System.Collections; using System.Collections.Generic; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; /** * 写作说明:本文展示了如何利用AjaxPro与服务器交互,并且还展示了在Js中可以直接调用服务器返回的集合和直接调用服务器上class的属性 * 作者:周公 * 日期:2008-1-1 * 首发地址:http://blog.csdn.net/zhoufoxcn/ **/ public partial class Test : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { List<State> stateList = new List<State>(10); stateList.Add(new State(0, "选择城市"));//默认选项 stateList.Add(new State(1,"北京")); stateList.Add(new State(2, "天津")); stateList.Add(new State(3, "上海")); stateList.Add(new State(4, "湖北")); stateList.Add(new State(5, "湖南")); stateList.Add(new State(6, "山西")); ddlStateList.DataSource = stateList; ddlStateList.DataBind(); ddlStateList.Attributes["onchange"] = "ShowCity(this.options[selectedIndex].value)"; } AjaxPro.Utility.RegisterTypeForAjax(typeof(Test));//注册 } [AjaxPro.AjaxMethod] public List<City> GetCityList(int stateId) { //呵呵,都是我熟悉的城市或者区 List<City> cityList = new List<City>(12); cityList.Add(new City(11, "海淀区", 1)); cityList.Add(new City(12, "朝阳区", 1)); cityList.Add(new City(13, "大港区", 2)); cityList.Add(new City(14, "南开区", 2)); cityList.Add(new City(15, "普陀区", 3)); cityList.Add(new City(16, "黄浦区", 3)); cityList.Add(new City(17, "黄冈市", 4)); cityList.Add(new City(18, "荆州市", 4)); cityList.Add(new City(19, "长沙市", 5)); cityList.Add(new City(20, "岳阳市", 5)); cityList.Add(new City(21, "太原市", 6)); cityList.Add(new City(22, "大同市", 6)); List<City> tempList = new List<City>(); for (int i = 0; i < cityList.Count; i++) { if (cityList[i].StateId == stateId) { tempList.Add(cityList[i]); } } return tempList; } } /// <summary> /// 省份信息 /// </summary> public class State { private int stateId; private string stateName; /// <summary> /// 省份名 /// </summary> public string StateName { get { return stateName; } set { stateName = value; } } /// <summary> /// 省份编号 /// </summary> public int StateId { get { return stateId; } set { stateId = value; } } public State(int stateId, string stateName) { this.stateId = stateId; this.stateName = stateName; } } /// <summary> /// 城市信息 /// </summary> public class City { private int cityId; private int stateId; private string cityName; /// <summary> /// 城市名称 /// </summary> public string CityName { get { return cityName; } set { cityName = value; } } /// <summary> /// 城市所在省份编号 /// </summary> public int StateId { get { return stateId; } set { stateId = value; } } /// <summary> /// 城市编号 /// </summary> public int CityId { get { return cityId; } set { cityId = value; } } public City(int cityId, string cityName, int stateId) { this.cityId = cityId; this.cityName = cityName; this.stateId = stateId; } }
相关阅读 更多 +