Javascript kendogrid选定单元格的编辑模式

Javascript kendogrid选定单元格的编辑模式,javascript,model-view-controller,kendo-grid,Javascript,Model View Controller,Kendo Grid,我有一个带有1个可编辑列的剑道网格,当我执行某个javascript函数时,我想为当前选定的单元格启用编辑。关键是,这是通过编程实现的,而不是单击单元格。代码当前所做的是选择需要设置为编辑模式但不启用编辑模式本身的单元格 编辑修复程序: 我不得不将单元格选择的索引改为+1,而行选择保持不变,这可能是因为标题计为单元格或其他内容。还有一些功能将焦点从编辑字段中移开,并立即将其关闭 JS: 网格: 相反: var cell = grid.select("tr:eq(" + index + ") td

我有一个带有1个可编辑列的剑道网格,当我执行某个javascript函数时,我想为当前选定的单元格启用编辑。关键是,这是通过编程实现的,而不是单击单元格。代码当前所做的是选择需要设置为编辑模式但不启用编辑模式本身的单元格

编辑修复程序:

我不得不将单元格选择的索引改为+1,而行选择保持不变,这可能是因为标题计为单元格或其他内容。还有一些功能将焦点从编辑字段中移开,并立即将其关闭

JS:

网格:

相反:

var cell = grid.select("tr:eq(" + index + ") td:eq(" + (5) + ")");
grid.editCell(cell);
尝试:


您还可以发布您的onEdit事件定义吗?我已将其添加到主帖子中,它当前可确保我在用鼠标单击打开字段时自动选择值。我已通过编程在clean示例上检查了我的解决方案,并且它可以正常工作。您确定编辑单元格代码块是可访问的吗?没有发生例外情况?没有未定义的引用?您是否尝试从控制台窗口编辑示例单元格?嗯,在我按enter$'txtBarcode'后,焦点似乎停留在文本框上。向下键我认为这可能导致问题。但是,它确实到达了代码中。我有几行代码将焦点重定向到了我代码中的文本框,我对它们都进行了注释,但是editCell函数仍然只被选中,而没有被设置为可编辑。
    @(Html.Kendo().Grid<TelerikMvcApp1.Models.PickListLineViewModel>()
                        .Name("PickListDetailGrid")
                        .Columns(columns =>
                        {
                            columns.Bound(c => c.ArticleName);
                            columns.Bound(c => c.ArticleID);
                            columns.Bound(c => c.PickID);
                            columns.Bound(c => c.LineNum);
                            columns.Bound(c => c.Quantity);
                            columns.Bound(c => c.PickedQuantity).HtmlAttributes(new { @id = "test" });
                            columns.Bound(c => c.Status);
                        })
                        .Editable(editable => editable.Mode(GridEditMode.InCell))
                        .HtmlAttributes(new { style = "height: 75%;" })
                        .Scrollable()
                        .Groupable()
                        .Sortable()
                        .Selectable()
                        .RowAction(row =>
                        {
                            if (row.DataItem.Quantity == row.DataItem.PickedQuantity)
                            {
                                row.HtmlAttributes["class"] = "k-state-selected";
                            }
                        })
                        .ToolBar(toolbar =>
                        {
                            toolbar.Custom().Text("Return to Picklists")
                            .HtmlAttributes(new { @style = "color:black; width:100%; height:50%;" })
                            .Action("Picklist", "PickList");
                        })
            .DataSource(dataSource => dataSource
                .Ajax()
                .Events(events => events.Error("error"))
                .Model(model => model.Id(i => i.PickID))
                .Model(model =>
                {
                    model.Field(f => f.PickID).Editable(false);
                    model.Field(f => f.ArticleID).Editable(false);
                    model.Field(f => f.LineNum).Editable(false);
                    model.Field(f => f.Quantity).Editable(false);
                    model.Field(f => f.ArticleName).Editable(false);
                    model.Field(f => f.Status).Editable(false);
                    model.Field(f => f.PickedQuantity).Editable(true);
                })
                .Read(read => read.Action("PickLines_Read", "PickList", new { name = "id", id = Model.FirstOrDefault().PickID }))
                .Update(update => update.Action("submitPickList", "PickList"))
        )
      .Events(events => events
        .Change("onChange")
        .Edit("onEdit")
        .Save("onSave"))
    )
function onEdit(e) {
    e.container.find("input").bind("focus", function () {
        if (this.style.display != "none") {
            var element = this;
            setTimeout(function () {
                element.select();
            })
        }
    })

    setTimeout(function () {
        document.activeElement.select();
    })
}
var cell = grid.select("tr:eq(" + index + ") td:eq(" + (5) + ")");
grid.editCell(cell);
grid.editCell("tr:eq(" + index + ") td:eq(" + (5) + ")");