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

问题描述 投票:0回答:1

我有kendogrid,其中有一个允许用户选择公寓状态的字段,我想检查网格数据绑定处的value = 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();
            }
        }
    }


javascript jquery asp.net-mvc razor kendo-asp.net-mvc
1个回答
0
投票

我认为在这种情况下column template是更好的选择。类似于:

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>
);
© www.soinside.com 2019 - 2024. All rights reserved.