asp.net 使用jquery 和ajax 实现三级联动

来源:互联网 发布:如何正确使用网络 编辑:程序博客网 时间:2024/06/05 02:44
前台:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!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></title>    <style type="text/css">        #Select1        {            height: 21px;            width: 95px;        }        #Select2        {            height: 21px;            width: 90px;        }        #Select3        {            height: 21px;            width: 103px;        }    </style>    <script src="Jquery1.7.js" type="text/javascript"></script>    <script type="text/javascript">        $(function () {            $.ajax({                type: "post",                contentType: "application/json",                url: "WebService.asmx/province",                data: "{}",                success: function (result) {                    var array = result.d.split(",");                    for (var i = 0; i < array.length - 1; i++) {                        var array1 = array[i].split("|");                        $("#DropDownList1").append("<option value=" + array1[0] + ">" + array1[1] + "</option>");                    }                }            })            $("#DropDownList1").change(function () {                document.getElementById('DropDownList2').length = 0;                $.ajax({                    type: "post",                    contentType: "application/json",                    url: "WebService.asmx/city",                    data: "{drop1:" + $(this).val() + "}",                    success: function (result) {                        var array = result.d.split(",");                        for (var i = 0; i < array.length - 1; i++) {                            var array1 = array[i].split("|");                            $("#DropDownList2").append("<option value=" + array1[0] + ">" + array1[1] + "</option>");                        }                    }                })            })            $("#DropDownList2").change(function () {                document.getElementById('DropDownList3').length = 0;                $.ajax({                    type: "post",                    contentType: "application/json",                    url: "WebService.asmx/area",                    data: "{drop2:" + $(this).val() + "}",                    success: function (result) {                        var array = result.d.split(",");                        for (var i = 0; i < array.length - 1; i++) {                            var array1 = array[i].split("|");                            $("#DropDownList3").append("<option value=" + array1[0] + ">" + array1[1] + "</option>");                        }                    }                })            })        })    </script></head><body>    <form id="form1" runat="server">    <div>        <asp:DropDownList ID="DropDownList1" runat="server">        </asp:DropDownList>        <asp:DropDownList ID="DropDownList2" runat="server">        </asp:DropDownList>        <asp:DropDownList ID="DropDownList3" runat="server">        </asp:DropDownList>             </div>    </form></body></html>webservice:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;using System.Text;using System.Data;using System.Data.SqlClient;using System.Configuration;/// <summary>///WebService 的摘要说明/// </summary>[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 [System.Web.Script.Services.ScriptService]public class WebService : System.Web.Services.WebService {    string sqlstr=ConfigurationManager.ConnectionStrings["sqlstr"].ConnectionString;    public WebService () {        //如果使用设计的组件,请取消注释以下行         //InitializeComponent();     }    [WebMethod]    public string HelloWorld() {        return "Hello World";    }    [WebMethod]    public string province()    {        using (SqlConnection sqlcnn = new SqlConnection(sqlstr))        {            using (SqlCommand sqlcmm=sqlcnn.CreateCommand())            {                sqlcmm.CommandText = "select * from province";                DataTable dt = new DataTable();                SqlDataAdapter adapt = new SqlDataAdapter(sqlcmm);                adapt.Fill(dt);                StringBuilder sb1 = new StringBuilder();                for (int i = 0; i < dt.Rows.Count; i++)                {                    string proid = dt.Rows[i]["provinceID"].ToString();                    string proname = dt.Rows[i]["province"].ToString();                    sb1.Append(proid);                    sb1.Append("|");                    sb1.Append(proname);                    sb1.Append(",");                }                return sb1.ToString();            }        }    }    [WebMethod]    public string city(int drop1)    {        using (SqlConnection sqlcnn=new SqlConnection(sqlstr))        {            using (SqlCommand sqlcmm=sqlcnn.CreateCommand())            {                sqlcmm.CommandText = "select * from city where father=@father";                sqlcmm.Parameters.AddWithValue("@father", drop1);                DataTable dt = new DataTable();                SqlDataAdapter adapt = new SqlDataAdapter(sqlcmm);                adapt.Fill(dt);                StringBuilder sb2 = new StringBuilder();                for (int i = 0; i < dt.Rows.Count; i++)                {                    string proid = dt.Rows[i]["cityID"].ToString();                    string proname = dt.Rows[i]["city"].ToString();                    sb2.Append(proid);                    sb2.Append("|");                    sb2.Append(proname);                    sb2.Append(",");                }                return sb2.ToString();            }        }    }    [WebMethod]    public string area(int drop2)    {        using (SqlConnection sqlcnn = new SqlConnection(sqlstr))        {            using (SqlCommand sqlcmm = sqlcnn.CreateCommand())            {                sqlcmm.CommandText = "select * from area where father=@father";                sqlcmm.Parameters.AddWithValue("@father", drop2);                DataTable dt = new DataTable();                SqlDataAdapter adapt = new SqlDataAdapter(sqlcmm);                adapt.Fill(dt);                StringBuilder sb3 = new StringBuilder();                for (int i = 0; i < dt.Rows.Count; i++)                {                    string proid = dt.Rows[i]["areaID"].ToString();                    string proname = dt.Rows[i]["area"].ToString();                    sb3.Append(proid);                    sb3.Append("|");                    sb3.Append(proname);                    sb3.Append(",");                }                return sb3.ToString();            }        }    }}