我已完成以下问题中显示的所有步骤:
如何在 Kendo UI MVC 的网格中设置和获取下拉列表的值?
但最后,只有我的列表的第一个值出现在下拉列表中。例如,只有“管理员”。我无法在弹出编辑模式中选择其他值(样式为下拉列表,但不会打开,并且值“admin”是唯一可见的)。
这是我的观点:
@(Html.Kendo().Grid<A.Models.Perm>()
.Name("PermGrid")
.Columns(columns =>
{
columns.Bound(r => r.Id).Visible(false);
columns.Bound(r => r.Name);
columns.Bound(r =>
r.PermType).EditorTemplateName("PermTypeEditor");
columns.Command(command =>
{
command.Edit() ;
});
})
.DataSource(datasoure => datasoure.Ajax()
.Model(model => model.Id(record => record.Id))
.Read(read => read.Action("GetAll", "Permi"))
.Update(update => update.Action("Update",
"Permi"))
.PageSize(10)
)
.Editable(editable => editable.Mode(GridEditMode.PopUp))
.Sortable()
.Selectable()
.Events(e => e.Edit("onEdit"))
.Pageable(pageable =>
{
pageable.Refresh(true);
pageable.PageSizes(true);
})
)
控制器:
public ActionResult GetAll([DataSourceRequest] DataSourceRequest request)
{
var Permi = GetPermi();
return Json(Permi.ToDataSourceResult(request, record => new
{
record.Id,
record.Name,
record.PermType,
}));
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Update([DataSourceRequest] DataSourceRequest request,
Permission perm)
{
if (perm != null && ModelState.IsValid)
{
_db.Update(perm);
_db.SaveChanges();
}
return Json(ModelState.ToDataSourceResult());
}
private static IEnumerable<Permission> GetPermi()
{
var dbs = new AFBContext();
var list3 = (from Item1 in dbs.Permi.ToList() select Item1);
return list3;
}
模型:
public int Id { get; set; }
public string Name { get; set;
[UIHint("PermTypeEditor")]
public string PermType { get; set; }
模板编辑器:
@model string
@(Html.Kendo().DropDownList()
.Name("PermType")
.Value(Model)
.SelectedIndex(0)
.BindTo(new string[] { "Admin", "Guest", "Normal" }))
好的,它似乎适用于 Firefox 而不是 chrome。