asp.net三级联动(jquery+json)

liandong.aspx:
------------------------------------------

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="liandong.aspx.cs" Inherits="WebApplication1.liandong" %>

<!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>

    <script src="script/jquery-1.6.2.js" type="text/javascript"></script>
        <script language="javascript" type="text/javascript">
            $(function() {
                $("#DropDownList1").change(function() {
                    var defaultValue = "<option value='-1'>--请选择--</option>";
                    $("#DropDownList2").html(defaultValue);
                    $("#DropDownList3").html(defaultValue);
                    showMsg("#DropDownList1", "#DropDownList2");
                })

                $("#DropDownList2").change(function() {
                    var defaultValue = "<option value='-1'>--请选择--</option>";
                    $("#DropDownList3").html(defaultValue);
                    showMsg("#DropDownList2", "#DropDownList3");
                })

            })

            function showMsg(sender, receiver) {
                var d1 = $(sender).val();
                $.ajax({
                    type: 'get',
                    dataType: "json",
                    url: 'liandong.ashx',
                    data: 'pid=' + d1,
                    success: function(data) {
                        $.each(data, function(i, o) {
                            var opts = "<option value='" + o.id + "'>" + o.name + "</option>";
                            $(receiver).append(opts);
                        })
                    }
                })
            }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:DropDownList ID="DropDownList1" runat="server">
            <asp:ListItem Value="-1">--请选择--</asp:ListItem>
        </asp:DropDownList>
        <asp:DropDownList ID="DropDownList2" runat="server">
            <asp:ListItem Value="-1">--请选择--</asp:ListItem>
        </asp:DropDownList>
        <asp:DropDownList ID="DropDownList3" runat="server">
            <asp:ListItem Value="-1">--请选择--</asp:ListItem>
        </asp:DropDownList>
    
    </div>
    </form>
</body>
</html>

liandong.aspx.cs
-------------------------------------------------------------------------------------------

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace WebApplication1
{
    public partial class liandong : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
             if(!IsPostBack)
            {
                string sql = "select * from t_ld where pid=0";
                DataTable dt  = DBhelper.query(sql);
                foreach (DataRow dr in dt.Rows)
                {
                    ListItem li = new ListItem(dr["name"].ToString(), dr["id"].ToString());
                    this.DropDownList1.Items.Add(li);
                }
            }
        }
    }
}

liandong.ashx.cs

using System;
using System.Collections;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;

namespace WebApplication1
{
    /// <summary>
    /// $codebehindclassname$ 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class liandong1 : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
            if(!string.IsNullOrEmpty(context.Request.QueryString["pid"]))
            {
                int pid = Convert.ToInt32(context.Request.QueryString["pid"]);
                string sql = "select * from t_ld where pid=" + pid;
                DataTable dt = DBhelper.query(sql);
                string json_str = "";
                json_str += "[";
                foreach (DataRow dr in dt.Rows)
                {
                    json_str += "{\"id\"";
                    json_str += ":";
                    json_str += "\"" + dr["id"].ToString() + "\"";
                    json_str += ",";
                    json_str += "\"name\"";
                    json_str += ":";
                    json_str += "\"" + dr["name"].ToString() + "\"";
                    json_str += "}";
                    json_str += ",";
                }
                json_str = json_str.Substring(0, json_str.Length - 1);
                json_str += "]";
                context.Response.Write(json_str);
            }
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}


你可能感兴趣的:(asp.net)