我在這裏發現了類似的問題,但那些是服務器端代碼,而我想要使用javascript & jquery。下面是代碼..如何基於javascript jquery中的另一個下拉項選擇生成dropdownlist項目?
C#代碼以JSON格式返回數據
public JsonResult GetEmployeesByDepartment(int departmentId)
{
var employees = new EmployeeInfoRepository().GetEmployeesByDepartmentId(departmentId);
var employeeDictionary = new Dictionary<int, string>();
foreach (var emp in employees)
{
if(!employeeDictionary.ContainsKey(emp.EmployeeID))
{
employeeDictionary.Add(emp.EmployeeID, emp.FullName);
}
}
return Json(employeeDictionary, JsonRequestBehavior.AllowGet);
}
Javascript代碼的數據綁定到DropDownList的
$("#ddlDepartment").change(function() {
var id = $("#ddlDepartment option:selected").val();
GetEmployeeByDepartmentId(id);
});
function GetEmployeeByDepartmentId(id) {
var postData = {
departmentId: id
};
$.ajax('/Leave/GetEmployeesByDepartment', {
method: 'GET',
dataType: 'JSON',
data: postData,
async: false,
success: function (response) {
$.each(response, function() {
$("#ddlEmployee").append(
$('<option/>', {
value: this,
html: this
})
);
});
}
});
}
我也在裏面下方嘗試了「成功「功能,但這也不起作用。
if (response == false) {
alert("No Employee found for this department");
} else {
$("#ddlEmployee").html = "";
response.each(function(index, item) {
$("#ddlEmployee").append("<option value='item.Key'>item.Value </option>");
});
}
所建議
C#代碼在JSON格式返回數據編輯的代碼
public JsonResult GetEmployeesByDepartment(int departmentId)
{
var employees = new EmployeeInfoRepository().GetEmployeesByDepartmentId(departmentId);
return Json(employees, JsonRequestBehavior.AllowGet);
}
Javascript代碼(成功唯一功能)
if (response == null) {
alert("No Employee found for this department");
} else {
$.each(response, function() {
var option = $('<option></option>');
option.val(response.EmployeeID);
option.text(response.FullName);
$("#ddlEmployee").append(option);
});
}
調用「成功」函數並返回一個對象數組。但是,這些數據仍然沒有綁定到「ddlEmployee」中。
最終解決
目前這樣用下面代碼 -
$("#ddlEmployee").empty();
$.each(response, function (key, value) {
$("#ddlEmployee").append('<option value=' + value.EmployeeID + '>' + value.FullName + '</option>');
});
是否檢查成功,被稱爲和jQuery發現#ddlEmployee? – Beatles1692 2014-09-02 06:04:58
你爲什麼要返回一個'Dictionary'? – 2014-09-02 06:08:22
試試這個$(「#ddlEmployee」)。append(new Option(item.Key,item.Value)); – Amol 2014-09-02 06:12:35