如何有条件地禁用kendogrid中的selectlistitem



我有一个kendogrid,它有一个允许用户选择公寓状态的字段,我想检查网格数据绑定处的值是否为3,然后禁止编辑单元格。

@(Html.Kendo().Grid<ApartmentModel>()
.Name("UnitsGrid")
.Columns(columns =>
{
columns.ForeignKey(o => o.Status, 
new List<SelectListItem>() { 
new SelectListItem() { Text =  "Not Reserved", Value = "1", Selected = true }, 
new SelectListItem() { Text = "Reserved", Value = "2" },
new SelectListItem() { Text =  "Contracted", Value = "3" } }, "Value", "Text")

在网格数据绑定事件

function GridDataBound(data) {
var grid = $("#UnitsGrid").data("kendoGrid");
debugger;
var gridData = grid.dataSource.view();
for (var i = 0; i < gridData.length; i++) {
var gridItem = gridData[i];
if (gridItem.Status == 3) { //Condition
grid.table.find("[name=Status_input]").hide();
}
}
}

我认为对于这种情况,列模板是更好的选择。类似于:

columns.Bound(p => p.Status).Template( @<text>
@if(@item.Status == 3){
// Display editable dropdown list
} else {
// Just show the value or a message
"Contracted"
}
</text>
);

最新更新