Asp.net mvc ASP MVC剑道网格中的下拉列表将不会打开

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”来捕获这个下拉列表,并截图: 发生了什么事?为什么它不突然打开 以下是一

我正试图复制Categories列的内容。只是网格中的一个下拉列表。我准确地复制了他们所有的源代码,但当我单击带有下拉菜单的列时,网格就会闪烁。我可以很好地编辑全名值。我试着用屏幕录像机拍摄效果的动画,但由于某些原因,它并没有显示我所看到的一切。在这张图片中,我多次单击“Rol”下拉栏

gif没有显示的是,当我单击该列时,它会在一瞬间短暂更改为下拉控件。我可以通过在onDataBound事件中添加一行“debugger”来捕获这个下拉列表,并截图:

发生了什么事?为什么它不突然打开

以下是一些相关代码:

EditorTemplates/RolList.cshtml文件。请注意,除了onDataBound事件之外,这些事件都不会触发。这可能是个线索

@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);