Jquery实现无刷新DropDownList联动

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

    <script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>

    <style type="text/css">

        #ddlEmployeeCars

        {

            display: none;

            position: absolute;

            top: 50px;

            left: 9px;

        }

    </style>

    <script type="text/javascript">

        $(function () {

            var $ddl = $("select[name$=ddlEmployee]");

            var $ddlCars = $("select[name$=ddlEmployeeCars]");

            $ddl.focus();

            $ddl.bind("change keyup", function () {

                if ($(this).val() != "0") {

                    loadEmployeeCars($("select option:selected").val());

                    $ddlCars.fadeIn("slow");

                } else {

                    $ddlCars.fadeOut("slow");

                }

            });

        });

 

        function loadEmployeeCars(selectedItem) {

            $.ajax({

                type: "POST",

                url: "WebForm1.aspx/FetchEmployeeCars",

                data: "{id: " + selectedItem + "}",

                contentType: "application/json; charset=utf-8",

                dataType: "json",

                async: true,

                success: function Success(data) {

                    printEmployeeCars(data.d);

                }

            });

        }

 

        function printEmployeeCars(data) {

            /* 方法1

            $("select[name$=ddlEmployeeCars] > option").remove();

               for (var i = 0; i < data.length; i++) {

                  $("select[name$=ddlEmployeeCars]").append( $("<option></option>").val(data[i].Id).html(data[i].Car) );

            }

            */

 

            $("select[name$=ddlEmployeeCars]").empty();

            $.each(data, function (i, item) {

                $("<option></option>").val(item["Id"]).text(item["Car"]).appendTo($("select[name$=ddlEmployeeCars]"));

            });

        }      

    </script>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <asp:DropDownList ID="ddlEmployee" runat="server" AppendDataBoundItems="true">

            <asp:ListItem Text="(Please Select)" Value="0" Selected="True" />

        </asp:DropDownList>

        <asp:DropDownList ID="ddlEmployeeCars" runat="server">

        </asp:DropDownList>

    </div>

    </form>

</body>

</html>

 

 

 

protected void Page_Load(object sender, EventArgs e)

{

   if (!IsPostBack)

   {

      var employees = new Employee();

      ddlEmployee.DataSource = employees.FetchEmployees();

      ddlEmployee.DataTextField = "Surname";

      ddlEmployee.DataValueField = "Id";

      ddlEmployee.DataBind();

   }

 

}

 

[WebMethod]

public static List<EmployeeCar> FetchEmployeeCars(int id)

{

 var emp = new EmployeeCar();

  return emp.FetchEmployeeCars(id);

}

 

 

public class EmployeeCar

    {

        public int Id { get; set; }

        public string Car { get; set; }

 

        private static List<EmployeeCar> LoadData()

        {

            return new List<EmployeeCar>

                         {

                             new EmployeeCar {Id = 1, Car = "Ford"},

                             new EmployeeCar {Id = 1, Car = "Holden"},

                             new EmployeeCar {Id = 1, Car = "Honda"},

                             new EmployeeCar {Id = 2, Car = "Toyota"},

                             new EmployeeCar {Id = 2, Car = "General Motors"},

                             new EmployeeCar {Id = 2, Car = "Volvo"},

                             new EmployeeCar {Id = 3, Car = "Ferrari"},

                             new EmployeeCar {Id = 3, Car = "Porsche"},

                             new EmployeeCar {Id = 3, Car = "Ford2"}

                         };

        }

 

        public List<EmployeeCar> FetchEmployeeCars(int id)

        {

            return (from p in LoadData()

                    where p.Id == id

                    select p).ToList();

        }

    }

 

    public class Employee

    {

        public int Id { get; set; }

        public string GivenName { get; set; }

        public string Surname { get; set; }

 

        public List<Employee> FetchEmployees()

        {

            return new List<Employee>

                        {

                             new Employee {Id = 1, GivenName = "Tom", Surname = "Hanks"},

                             new Employee {Id = 2, GivenName = "Hugh", Surname = "Jackman"},

                             new Employee {Id = 3, GivenName = "Petter", Surname = "Liu"}

                        };

        }

 

        public Employee FetchEmployee(int id)

        {

            var employees = FetchEmployees();

            return (from p in employees

                    where p.Id == id

                    select p).First();

        }

    }

 

posted @ 2017-03-02 16:02  每天进步多一点  阅读(1045)  评论(0编辑  收藏  举报