Asp.net mvc 剑道MVC级联下拉列表问题
我正在使用KendoUIASP.NETMVC,我想用它做一个级联下拉列表。我在第三个下拉列表中遇到问题,该列表显示数据库中的所有值,而不是第二个下拉列表中选择的id值 我的控制器代码:-Asp.net mvc 剑道MVC级联下拉列表问题,asp.net-mvc,asp.net-mvc-4,kendo-asp.net-mvc,cascadingdropdown,Asp.net Mvc,Asp.net Mvc 4,Kendo Asp.net Mvc,Cascadingdropdown,我正在使用KendoUIASP.NETMVC,我想用它做一个级联下拉列表。我在第三个下拉列表中遇到问题,该列表显示数据库中的所有值,而不是第二个下拉列表中选择的id值 我的控制器代码:- public ActionResult CDropdown() { return View(); } public JsonResult GetCascadeDept() { return Json(db.DeptData.Select(c => new { DepartmentID =
public ActionResult CDropdown()
{
return View();
}
public JsonResult GetCascadeDept()
{
return Json(db.DeptData.Select(c => new { DepartmentID = c.DepartmentID, DepartmentName = c.DepartmentName }), JsonRequestBehavior.AllowGet);
}
public JsonResult GetCascadeEmployee(int? Departmets)
{
var empdata = db.EmpData.AsQueryable();
if (Departmets != null)
{
empdata = empdata.Where(p => p.DepartmentID == Departmets);
}
return Json(empdata.Select(p => new { EmployeeID = p.EmployeeID, EmpName = p.EmpName }), JsonRequestBehavior.AllowGet);
}
public JsonResult GetCascadeMovies(int? Employees)
{
var d = from c in db.EmpMovies orderby c.MovieName select c;
var moviedata = db.EmpMovies.AsQueryable();
if (Employees != null)
{
int cat = Convert.ToInt32(Employees);
moviedata = moviedata.Where(p => p.EmployeeID == Employees);
}
return Json(moviedata.Select(p => new { MovieId = p.MovieId, MovieName = p.MovieName }), JsonRequestBehavior.AllowGet);
}
我的视图代码:-
<div>
<p>
<label for="Departmets">Department :- </label>
@(Html.Kendo().DropDownList()
.Name("Departmets")
.HtmlAttributes(new { style = "width:300px" })
.OptionLabel("-- Select Department --")
.DataTextField("DepartmentName")
.DataValueField("DepartmentID")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetCascadeDept", "Home");
//.Data("FilterDepartmets");
})
.ServerFiltering(true);
})
.SelectedIndex(0)
)
</p>
<p>
<label for="Employees">Employee :- </label>
@(Html.Kendo().DropDownList()
.Name("Employees")
.HtmlAttributes(new { style = "width:300px" })
.OptionLabel("-- Select Employee --")
.DataTextField("EmpName")
.DataValueField("EmployeeID")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetCascadeEmployee", "Home")
.Data("FilterEmployees");
})
.ServerFiltering(true);
})
.Enable(false)
.AutoBind(false)
.SelectedIndex(0)
.CascadeFrom("Departmets")
)
<script type="text/javascript">
function FilterEmployees() {
return {
Departmets: $("#Departmets").val()
};
}
</script>
</p>
<p>
<label for="Movies">Movie Names :- </label>
@(Html.Kendo().DropDownList()
.Name("Movies")
.HtmlAttributes(new { style = "width:300px" })
.OptionLabel("-- Select Movie --")
.DataTextField("MovieName")
.DataValueField("MovieId")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetCascadeMovies", "Home")
.Data("FilterMovies");
})
.ServerFiltering(true);
})
.Enable(false)
.AutoBind(false)
.SelectedIndex(0)
.CascadeFrom("Employees")
)
<script type="text/javascript">
function FilterMovies() {
return {
Movies: $("#FilterMovies").val()
};
}
</script>
</p>
</div>
我使用的是Kendo UI ASP MVC下拉列表-第三个下拉列表显示了表中的所有值-ID无法获取。我不知道为什么会这样。有解决方案吗?您的FilterMovies函数中有一个错误。您希望按所选员工筛选电影,因此函数应如下所示。请注意,不同的属性名称为movies->Employees,以及不同的$selector FilterMovies->Employees:
希望这有帮助。您的FilterMovies函数中有一个错误。您希望按所选员工筛选电影,因此函数应如下所示。请注意,不同的属性名称为movies->Employees,以及不同的$selector FilterMovies->Employees:
希望这有帮助。刚刚更改了视图中的第三个下拉列表:-
<p>
<label for="Movies">Movie Names :- </label>
@(Html.Kendo().DropDownList()
.Name("Movies")
.HtmlAttributes(new { style = "width:300px" })
.OptionLabel("-- Select Movie --")
.DataTextField("MovieName")
.DataValueField("MovieId")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetCascadeMovies", "Home")
.Data("FilterMovies");
})
.ServerFiltering(true);
})
.Enable(false)
.AutoBind(false)
.SelectedIndex(0)
.CascadeFrom("Employees")
)
<script type="text/javascript">
function FilterMovies() {
return {
Employees: $("#Employees").val()
};
}
</script>
</p>
刚刚更改了视图中的第三个下拉列表:-
<p>
<label for="Movies">Movie Names :- </label>
@(Html.Kendo().DropDownList()
.Name("Movies")
.HtmlAttributes(new { style = "width:300px" })
.OptionLabel("-- Select Movie --")
.DataTextField("MovieName")
.DataValueField("MovieId")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetCascadeMovies", "Home")
.Data("FilterMovies");
})
.ServerFiltering(true);
})
.Enable(false)
.AutoBind(false)
.SelectedIndex(0)
.CascadeFrom("Employees")
)
<script type="text/javascript">
function FilterMovies() {
return {
Employees: $("#Employees").val()
};
}
</script>
</p>
非常感谢您的帮助,先生,它工作得非常完美。非常感谢您的帮助,先生,它工作得非常完美