Kendo Grid能否始终处于编辑模式?

时间:2013-08-19 00:19:58

标签: kendo-ui kendo-grid

是否有人知道kendo网格是否始终可以设置为编辑模式?

我们不希望用户单击单元格或按钮来激活编辑模式。我们希望窗口小部件可以随时显示和使用。

有可能吗?

3 个答案:

答案 0 :(得分:7)

除了使用批处理编辑模式之外,您还可以尝试设置每列的模板,并使用MVVM将输入元素绑定到数据项。

$("#grid").kendoGrid({
  dataSource: {
    schema: {
      model: {
        id: "id",
        fields: {
          id: { editable: false }
        }
      }
    }
    data: [
      { id:1, age: 30, name: "John Doe" }
    ]
  },
  columns: [
    { field: "id", width: 50 },
    { field: "age", template: "<input data-bind='value: age' data-role='numerictextbox'>" },
    { field: "name", template:"<input data-bind='value: name' >" }
  ],
  dataBound: function() {
    var rows = this.tbody.children();
    var dataItems = this.dataSource.view();
    for (var i = 0; i < dataItems.length; i++)  {
      kendo.bind(rows[i], dataItems[i]);
    }
  }
});

这是一个现场演示:http://jsbin.com/ApoFobA/2/edit

答案 1 :(得分:6)

开箱即用,不完全是。您可以启用批量编辑,它可以正常显示所有内容,但单击一个单元格会自动将其切换到编辑器。

Example

要启用它,请在表的数据源上设置{ batch: true }。否则你会有更深入的脚本。检查并简单地在所有行上调用editRow不会这样做。默认行为是在新行进入编辑模式时禁用对行的编辑。

因此,快速查看批处理模式 - 不会一直显示编辑器,但是可以正常工作。

答案 2 :(得分:1)

我发现上述答案非常好。但有一个问题是,剑道在刷新网格时没有清理绑定(例如在排序或过滤时或调用refresh()时)并删除网格的DOM元素。结果是dataItems将有越来越多的&#34;更改&#34;排队的事件 - 有点内存泄漏。这可以通过在dataBinding事件中解除绑定来避免,如下所示:

dataBinding: function() {
  var rows = this.tbody.children();
  for (var i = 0; i < rows.length; i++)  {
    kendo.unbind(rows[i]);
  }
}