我的select
html上有两个元素,第一个select
应该填充来自数据库的数据,第二个应该填充数据,具体取决于第一个的选定项select
。但是,我设法在第一个上获得了价值,而第二个select
却遇到了问题,它返回的是undefined,具有准确的预期项目数,但未显示项目名称,仅显示undefined的列表。请帮助...这是代码:
1. HTML
<div class="row">
<div class="col-md-6">
<div class="form-group">
Category:
<select asp-for="CategoryID" id="CategoryDD" class="form-control" asp-items="@(new SelectList(ViewBag.ListOfCategories,"CategoryID","CategoryName"))">
<option value="">--Select Category--</option>
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
Item Name:
<select asp-for="Id" id="ItemDD" class="form-control" asp-items="@(new SelectList("","Id","ItemName"))">
<option value="">--Select Item--</option>
</select>
</div>
</div>
2. jQuery
$(document).ready(function () {
$("#CategoryDD").change(function () {
console.log("Feching Items");
$("#ItemDD").empty();
$.ajax({
type: "POST",
url: "@Url.Action("GetItems")",
dataType: "Json",
data: { id: $("#CategoryDD").val() },
success: function (items) {
console.log("Success!!!");
$.each(items, function (i, item) {
$("#ItemDD").append("<option value='"+item.Id+"'>"+ item.ItemName + "</option>");
});
},
error: function (ex) {
alert('Error Loading Items ' + ex);
}
});
return false;
})
});
3. MVC控制器
public JsonResult GetItems(int id)
{
var objSelectListItem = (from obj in _context.OrderItem.Where(cat => cat.CategoryID == id)
select new SelectListItem()
{
Text = obj.ItemName,
Value = obj.Id.ToString(),
}).ToList();
return Json(objSelectListItem);
}
代码现在可以按预期工作了,我不敢相信这简单的代码行使我工作了24小时。这是我的解决方案代码:
我更改了这一行:
$("#ItemDD").append("<option value='"+item.Id+"'>"+ item.ItemName + "</option>");
对此:
$.each(result, function (i, item) {
$("#ItemDD").append($("<option></option>").val(item.value).html(item.text));
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句