有谁知道剑道网格是否可以始终设置为编辑模式?
我们不希望用户单击单元格或按钮来激活编辑模式。我们希望小部件始终显示并可用。
有可能吗?
除了使用批量编辑模式之外,您还可以尝试设置每列的模板并使用 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
我发现上面的答案非常好。然而,一个问题是,Kendo 在刷新网格时(例如排序或过滤或调用 refresh() 时)并删除网格的 DOM 元素时不会清理绑定。结果是 dataItems 将有越来越多的“更改”事件排队 - 有点内存泄漏。这可以通过在 dataBinding 事件中取消绑定来避免,如下所示:
dataBinding: function() {
var rows = this.tbody.children();
for (var i = 0; i < rows.length; i++) {
kendo.unbind(rows[i]);
}
}