我有一个可编辑的网格,但如果符合某些要求,我想在一行的特定列中使其稳定(不可编辑),
这是我网格的代码
$scope.Grid = {
dataSource : new kendo.data.DataSource({
schema: {
model: {
id: 'Id',
fields: {
Id:{type:'number'},
Name: { type: "string" },
Description: { type: "string" },
Remarks: { type: "string" },
ApprovalStatus: { type: "string" }
}
}
}
}),
selectable: true,
sortable: true,
resizable: true,
scrollable: false,
edit: edit,
save: update,
这些是我的编辑和更新功能
function edit(e) {
e.model.Id = e.model.Id == "" ? 0 : e.model.Id;
if(e.model.ApprovalStatus === 'Waiting')
{
$('#Grid').data("kendoGrid").closeCell();
}
}
function update(e) {
var Data = {
Id: e.model.Id != "" && e.model.Id > 0 ? e.model.Id : 0,
Name: e.model.Name,
Description: e.model.Description,
Remarks: e.model.Remarks,
ApprovalStatus: e.model.ApprovalStatus
}
ciSetUp.setPayLoad({ Info: Data });
ciSetUp.postdata(e.model.Id).then(function () {
console.log(ciSetUp.postcreatedata);
});
}
因此,如果ApprovalStatus等于Waiting,则Approval Status字段应该变为不可编辑,这是我无法获得的。
在if条件下工作正常,但循环内的东西不执行
答案 0 :(得分:1)
不使用$('#Grid').data("kendoGrid").closeCell();
,而是使用e.sender.closeCell();
修改强>
以上答案适用于incell
编辑模式。使用inline
编辑模式时,请改用e.sender.cancelRow();
。