按下单独的编辑按钮以编辑kendogrid

时间:2015-07-30 15:31:12

标签: asp.net-mvc kendo-ui

目前,我正在尝试使用一个编辑按钮,用户可以按下该编辑按钮开始编辑第一个单元格,然后按顺序逐步扫描kendogrid中的其余单元格。

执行此代码时:

function initButtons() {
    // ...
    $("#edit-param-btn").kendoButton().on('click', function (e) { execEditParameter(e) });
    // ...
}

function execEditParameter(e) {
    var row = $("#rule-parameters").data('kendoGrid').dataItem($(e.currentTarget).closest("tr"));
     $("#rule-parameters").data('kendoGrid').editRow(row); 
}

以下是用户界面:

enter image description here

这是我按下编辑时收到的错误:

Uncaught TypeError: t.children is not a function
  at pt.ui.DataBoundWidget.extend._createInlineEditor (http://localhost/Tdm/Scripts/Kendo/kendo.all.min.js:30:21788)
  at pt.ui.DataBoundWidget.extend.editRow (http://localhost/Tdm/Scripts/Kendo/kendo.all.min.js:30:18039)
  at eval (eval at evaluate (unknown source), <anonymous>:1:21)
  at Object.InjectedScript._evaluateOn (<anonymous>:905:55)
  at Object.InjectedScript._evaluateAndWrap (<anonymous>:838:34)
  at Object.InjectedScript.evaluateOnCallFrame (<anonymous>:964:21)

有没有人有任何建议? TIA。

1 个答案:

答案 0 :(得分:0)

通过将execEditParameter更改为:

,结束了它的工作
function execEditParameter(e) {
    var dataItem = $("#rule-parameters").data('kendoGrid').dataItem($(e.currentTarget).closest("tr")); 
    var row = $("#rule-parameters").data('kendoGrid').tbody.find("tr[data-uid='" + dataItem.uid + "']");
    $("#rule-parameters").data('kendoGrid').editRow(row); 
}

<强>更新

以上内容非常适合编辑第一行,但如果我想编辑用户选择的行,那么它可以选择多行中的一行,那么这样做会更好:

function execEditParameter() {
    var row = $("#rule-parameters").data('kendoGrid').select();
    $("#rule-parameters").data('kendoGrid').editRow(row); 
}