我建议你有两个网格:一个是只读的,一个是读写的,但只有一个是可见的。两者共享 DataSource 定义,因此它们始终保持同步。当您想从一个更改为另一个时,您隐藏可见并显示另一个。
示例:我创建了两个网格,定义完全相同,不同之处在于一个是隐藏的,一个是可见的,一个是可编辑的,一个是不可编辑的。由于两者共享相同的数据源,它实际上非常完美,因为在一个页面中更改页面会更改另一个页面,编辑一个页面,更新另一个页面。
就像是:
1- 用于切换可见性的 CSS 定义:
.ob-hide {
display : none;
}
2- 数据源定义:
var ds = new kendo.data.DataSource({
transport : {
read : {
url: ...
},
update : {
url: ...
},
create : {
url: ...
},
destroy : {
url: ...
}
},
pageSize: 10,
schema : {
model: {
id : ...,
fields: {
id : { type: '...' },
...
}
}
}
});
接下来是两个网格:
$("#grid-editable").kendoGrid({
editable: "inline",
dataSource : ds,
...
}
$("#grid-not-editable").kendoGrid({
editable: false,
dataSource: ds,
...
});
$("#grid-editable").addClass("ob-hide");
最后是切换模式的功能:
function gridEditable() {
$("#grid-editable").removeClass("ob-hide");
$("#grid-not-editable").addClass("ob-hide");
});
function gridNotEditable() {
$("#grid-editable").addClass("ob-hide");
$("#grid-not-editable").removeClass("ob-hide");
});
看到它在这里运行:http: //jsfiddle.net/OnaBai/bCEJR/2/