function printEmployeeCars(data) { $("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) ); } } </script>
非常简单,检查值是不是0,然后ajax传值到server,成功后remove掉原来的option,append新的option. 看下WebPage的code: 复制代码 代码如下: public partial class _Default : System.Web.UI.Page { [WebMethod] public static List<EmployeeCar> FetchEmployeeCars(int id) { var emp = new EmployeeCar(); return emp.FetchEmployeeCars(id); }
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(); } } }
我们的Datasource class: 复制代码 代码如下: 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(); } }