目前,我正在尝试使用一个编辑按钮,用户可以按下该编辑按钮开始编辑第一个单元格,然后按顺序逐步扫描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);
}
以下是用户界面:
这是我按下编辑时收到的错误:
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。
答案 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);
}