Javascript 不可编辑剑道网格ID
我刚刚使用剑道网格UI,我正在尝试使用一个简单的代码创建一个不可编辑的列(更新时):Javascript 不可编辑剑道网格ID,javascript,jquery,kendo-ui,kendo-grid,Javascript,Jquery,Kendo Ui,Kendo Grid,我刚刚使用剑道网格UI,我正在尝试使用一个简单的代码创建一个不可编辑的列(更新时): schema: { id: 'ID', fields: { id: { editable: false } } } 这个默认模式在默认情况下使id列不可编辑,我甚至无法创建id为的新行。 我想使其不可编辑(更新时),但我希望能够创建一行并从用户处分配id(创建时) 有什么想法吗 编辑: PS:属性不仅仅与id相关,它可以出现在每一列上(不能更新,但可以创建)我一直怀疑模型的可编辑
schema: {
id: 'ID',
fields: {
id: { editable: false }
}
}
这个默认模式在默认情况下使id列不可编辑,我甚至无法创建id为的新行。
我想使其不可编辑(更新时),但我希望能够创建一行并从用户处分配id(创建时)
有什么想法吗
编辑:
PS:属性不仅仅与id相关,它可以出现在每一列上(不能更新,但可以创建)我一直怀疑模型的可编辑性。这对我来说从来都不起作用。它应该有一些非常深刻的设置,使它的工作,我从来没有意识到它是什么。所以这是一种完成你需要的东西的方法,我知道它确实有效:取消。请查看:
edit: function(e) {
// Cancels a new row
if (arguments, e.model.isNew()) {
this.cancelRow(e.container.parent());
}
else { // Cancels a cell editing
this.closeCell(e.container);
}
}
现在,如果您希望根据在模型中设置的内容在该事件中添加条件,也可以在事件中访问该条件:
edit: function(e) {
let currentColumn = this.options.columns[e.container.index()].field,
model = this.dataSource.options.schema.model.fields[currentColumn];
if (model.editable === false) {
// Cancels a new row
if (arguments, e.model.isNew()) {
this.cancelRow(e.container.parent());
}
else { // Cancels a cell editing
this.closeCell(e.container);
}
}
}
您可以自己在模型中添加一个选项,设置是否可以更新列或仅创建列,并在事件中处理该信息,随时取消编辑。我就是这样做的,尽管还有其他方法 在
列
选项中,如果从不知道从何处绑定的列中删除字段
选项
然后使用模板选项显示(绑定)id。从而使其成为只读
columns: [
{
title: 'Id', width: "40px",
template: "#= id #",
},
...]
可编辑
需要函数而不是值
columns: [
{ field: 'value', editable: function () { return false; } }
],
在此处签出:
在上一次演示中,列productName不可编辑,这很好,但在创建新行时,它应该可用!