Asp.net mvc ASP MVC剑道网格中的下拉列表将不会打开
我正试图复制Categories列的内容。只是网格中的一个下拉列表。我准确地复制了他们所有的源代码,但当我单击带有下拉菜单的列时,网格就会闪烁。我可以很好地编辑全名值。我试着用屏幕录像机拍摄效果的动画,但由于某些原因,它并没有显示我所看到的一切。在这张图片中,我多次单击“Rol”下拉栏 gif没有显示的是,当我单击该列时,它会在一瞬间短暂更改为下拉控件。我可以通过在onDataBound事件中添加一行“debugger”来捕获这个下拉列表,并截图: 发生了什么事?为什么它不突然打开 以下是一些相关代码: EditorTemplates/RolList.cshtml文件。请注意,除了onDataBound事件之外,这些事件都不会触发。这可能是个线索Asp.net mvc ASP MVC剑道网格中的下拉列表将不会打开,asp.net-mvc,kendo-ui,kendo-grid,kendo-asp.net-mvc,Asp.net Mvc,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我正试图复制Categories列的内容。只是网格中的一个下拉列表。我准确地复制了他们所有的源代码,但当我单击带有下拉菜单的列时,网格就会闪烁。我可以很好地编辑全名值。我试着用屏幕录像机拍摄效果的动画,但由于某些原因,它并没有显示我所看到的一切。在这张图片中,我多次单击“Rol”下拉栏 gif没有显示的是,当我单击该列时,它会在一瞬间短暂更改为下拉控件。我可以通过在onDataBound事件中添加一行“debugger”来捕获这个下拉列表,并截图: 发生了什么事?为什么它不突然打开 以下是一
@model MyCompany.Web.CaseLink.Mvc.Admin.Models.RolDropDown
@(Html.Kendo().DropDownListFor(m => m)
.BindTo((System.Collections.IEnumerable)ViewData["roles"])
.DataValueField("RolId")
.DataTextField("RolDescription")
.Events(events => events
.Select("onSelect")
.Change("ddlChange")
.Open("onOpen")
.DataBound("onDatabound")
)
)
<script type="text/javascript">
function onSelect(e) {
console.log("ddl select" + e);
}
function ddlChange(e) {
console.log("ddl change" + e);
}
function onOpen(e) {
console.log("ddl open" + e);
}
function onDatabound(e) {
debugger;
console.log("ddl databound" + e);
}
</script>
如果在“onDataBound”事件的调试器中有需要查找的内容,请告诉我。正如您在这里看到的,数据源肯定已填充。
编辑:我知道您可以尝试使用ForeignKey类型的列来执行相同的操作。当我试着这样做时,我可以得到一次工作机会。选择一个值后,该列开始像以前一样工作,您无法更改该值
columns.ForeignKey(p => p.RolId, (System.Collections.IEnumerable)ViewData["roles"], "RolId", "Description")
.Title("Role")
.Width(150);
我将您的代码粘贴到一个测试项目中(假设casembergridrow和RolDropDown的定义),它对我有效。我对代码所做的唯一更改是将Model.Id规范添加到网格中(因为如果不指定Id字段,就无法创建可编辑的网格),注释掉了Grid.Event()s,并将RolList.cshtml中的脚本块移动到DropDownListFor的上方,以便在尝试在初始化中使用这些函数之前存在这些函数。一切都很正常…@DrepreadPirateStephen我有一个Id字段,为了简单起见,我刚从粘贴的代码中删除了它。这些事件只是为了调试。你能告诉我,下拉列表中的事件是否全部触发?这很奇怪,所以我在IE浏览器里试过了。如果我快速点击下拉列表列5-7次,它最终会变成一个下拉列表。这太离奇了。这是2016.3.1118.545版
var roles = _rolService.GetAllRolesDTO()
.OrderBy(o => o.Description)
.Select(r => new RolDropDown
{
RolDescription = r.Description,
RolId = r.RolId
});
ViewData["roles"] = roles;
ViewData["defaultRol"] = roles.First();
columns.ForeignKey(p => p.RolId, (System.Collections.IEnumerable)ViewData["roles"], "RolId", "Description")
.Title("Role")
.Width(150);