Asp.net mvc 如何基于其他下拉列表将数据获取到DropDownList?
我有一个关于数据库的表Asp.net mvc 如何基于其他下拉列表将数据获取到DropDownList?,asp.net-mvc,Asp.net Mvc,我有一个关于数据库的表(dept),字段是: 1 - id 2 - Division 3 - Designation 我正在从下拉列表中检索division数据,这是我的代码: public JsonResult GetDivision() { var division = db.Depts.GroupBy(x => x.Division) .Select(x => x.FirstOrDefault()).Ord
(dept)
,字段是:
1 - id
2 - Division
3 - Designation
我正在从下拉列表中检索division
数据,这是我的代码:
public JsonResult GetDivision()
{
var division = db.Depts.GroupBy(x => x.Division)
.Select(x => x.FirstOrDefault()).OrderBy(x => x).ToList();
return Json(division);
}
现在我想在第二个下拉列表中根据部门名称获取指定数据
public JsonResult GetDesignation(int StateId)
{
var department = db.Depts.Where(x => x.DeptId == StateId)
.OrderBy(x => x.Designation);
return Json(department);
}
Ajax代码:
$(document).ready(function () {
$('#division').change(function () {
$('#designation').empty();
$.ajax({
type: "POST",
url: "/Official/GetDesignation",
datatype: "Json",
data: { StateId: $('#division').val() },
success: function (data) {
$('#designation').append('<option value>--Select--</option>');
$.each(data, function (index, value) {
$('#designation').append('<option value="' + value.deptId + '">' + value.designation + '</option>');
console.log(value);
});
}
});
});
当我从下拉列表中选择division时,我只得到一个名称,它来自id,但我想得到基于exmaple的division name的所有名称,我有这种类型的数据
id division designation
1 CORPORATE AFFAIRS Manager Corporate Affairs
2 CORPORATE AFFAIRS Manager BPR & PMO
3 CORPORATE AFFAIRS Jr. Executive Corporate Governance
在第一个下拉列表中,我得到了一个“公司事务”,但当我选择“公司事务”时,我需要在第二个下拉列表中获得所有名称。好的,我认为您需要了解以下内容 这一行在这里:
var department = db.Depts.Where(x => x.DeptId == StateId)
.OrderBy(x => x.Designation);
在最后进行SQL查询,这将导致以下情况:
SELECT * FROM Depts WHERE DeptId = Something ORDER BY Designation
我假设DeptId是一个主键,它是表中唯一的值,当您处理上面的查询时,它只会带来一个或零个结果,这取决于是否有匹配项
我认为您应该更正从ajax帖子传递的值,您可以使用:
data: { StateId: $('#division').text() }
而不是:
data: { StateId: $('#division').val() }
通过这种方式,可以将分区名称作为字符串传递,并按如下方式修改函数:
public JsonResult GetDesignation(string Division)
{
var department = db.Depts.Where(x => x.Division == Division)
.OrderBy(x => x.Designation);
return Json(department);
}
它仍然不起作用,我完全按照你说的做了,但在第二个下拉列表中我什么也没有得到……我想我们需要知道两件事:第一,你能发布从分区选择生成的html吗?第二,您可以发布ajax请求返回的数据吗?它成功了!谢谢你需要问另一件事你能检查这个公共的JsonResult GetDesignation(string Division){var department=db.Depts.Where(x=>x.Division==Division).OrderBy(x=>x.Designation);返回Json(department);}现在我得到的是基于除法的名称,但我有一些名称相同,如何删除重复的名称呢?JsonResult GetDesignation(string division){var department=db.Depts.Where(x=>x.division==division).GroupBy(x=>x.designation).Select(x=>x.FirstOrDefault()).OrderBy(x=>x.designment).ToList();返回Json(系);}
public JsonResult GetDesignation(string Division)
{
var department = db.Depts.Where(x => x.Division == Division)
.OrderBy(x => x.Designation);
return Json(department);
}