我认为我会做一些简单的事情,因为Kendo UI已经可以做到这么多,唉它并不像我想象的那么简单。单选按钮使其变得困难。
我正在尝试创建权限掩码,就像您在此处看到的那样:
相应的,几乎正常工作的JSFiddle: http://jsfiddle.net/oz0b7xcu/
目前我将View
,Edit
和None
作为单独的列 - 我可以将它们想象为enum
。
我想出了如何使用template
& editor
每field
boolean
显示带有单选按钮的PermissionMask
而不是" true" /" false" 。
我的问题:
我认为我想要做的很清楚:
PS:使用"虚拟列"可能所有这些都会更容易只有一个{{1}}字段,并根据其值填充虚拟列。可能?也许更好的解决方案?我不依赖任何数据源,所以我可以在这里定义不同的东西......
答案 0 :(得分:1)
如果除了单选按钮之外没有任何其他可编辑字段,我觉得您不需要使网格可编辑,您仍然可以使其工作。我对你的小提琴中的代码做了一些修改。这是代码。 (只有更改的代码)
columns: [
{ field: "Name" }, {
field: "View",
width: "80px",
template: "<input type='radio' name='#: uid #' onclick='markDirty(this);' />"
}, {
field: "Edit",
width: "80px",
template: "<input type='radio' name='#: uid #' onclick='markDirty(this);' />"
}, {
field: "None",
width: "80px",
template: "<input type='radio' name='#: uid #' onclick='markDirty(this);'/>"
我们可以在选择更改时手动将记录标记为脏。
function markDirty(ctrl) {
$("#grid").data("kendoGrid").dataSource.getByUid(ctrl.name).dirty = true;
}
最后,您可以在按钮单击时从网格中获取数据源并执行所需的任何操作。
//this will have the data in an array
var data = $("#grid").data("kendoGrid").dataSource.data();
希望这有帮助。