Kendo ui 剑道格网可以一直处于编辑模式吗?

Kendo ui 剑道格网可以一直处于编辑模式吗?,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,有人知道剑道网格是否可以始终设置为编辑模式吗 我们不希望用户点击单元格或按钮来激活编辑模式。我们希望它能够使小部件始终显示和可用 可能吗?开箱即用,不完全可能。您可以启用正常显示所有内容的批处理编辑,但单击单元格将自动将其切换到编辑器 要启用它,请在表的数据源上设置{batch:true}。否则,您将进入更深层次的脚本编写。选中并简单地调用所有行并不能做到这一点。默认行为是在新行进入编辑模式时禁用对行的编辑 因此,quick look表示批处理模式-不会一直显示编辑器,但可以开箱即用。除了使用

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

我们不希望用户点击单元格或按钮来激活编辑模式。我们希望它能够使小部件始终显示和可用


可能吗?

开箱即用,不完全可能。您可以启用正常显示所有内容的批处理编辑,但单击单元格将自动将其切换到编辑器

要启用它,请在表的数据源上设置
{batch:true}
。否则,您将进入更深层次的脚本编写。选中并简单地调用所有行并不能做到这一点。默认行为是在新行进入编辑模式时禁用对行的编辑


因此,quick look表示批处理模式-不会一直显示编辑器,但可以开箱即用。

除了使用批处理编辑模式外,您还可以尝试设置每列的模板,并使用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]);
    }
  }
});
$(“#网格”).kendoGrid({
数据源:{
模式:{
型号:{
id:“id”,
字段:{
id:{可编辑:false}
}
}
}
数据:[
{id:1,年龄:30,姓名:“John Doe”}
]
},
栏目:[
{字段:“id”,宽度:50},
{字段:“年龄”,模板:},
{字段:“名称”,模板:}
],
数据绑定:函数(){
var rows=this.tbody.children();
var dataItems=this.dataSource.view();
对于(var i=0;i

这里是一个现场演示:

我发现上面的答案非常好。但有一个问题是,Kendo在刷新网格(例如排序或筛选或调用refresh()时)并删除网格的DOM元素时,不会清理绑定。结果是,数据项将有越来越多的“更改”事件排队——有点内存泄漏。这可以通过在数据绑定事件中解除绑定来避免,如下所示:

dataBinding: function() {
  var rows = this.tbody.children();
  for (var i = 0; i < rows.length; i++)  {
    kendo.unbind(rows[i]);
  }
}
数据绑定:函数(){ var rows=this.tbody.children(); 对于(变量i=0;i
谢谢。这是最接近我需要的答案。也谢谢你。这对我来说非常有用,直到我启用了分组,并且在按列分组时,输入字段都被清空了。一个问题解决了,还有一个问题要解决……)