如何使网格列仅在 UI 上不可编辑 - 可以使用代码设置值

How to make grid column non editable on the UI only - can set value using code

如何使 kendo 网格列仅在客户端 UI 上不可编辑,但我可以在脚本中为其设置值?

var dataSource = new kendo.data.DataSource({
                data: result,
                schema: {
                    model: {
                        fields: {
                            IsSelected:{type:"boolean",editable:true},
                            InvoiceDate: { type: "date",editable:false }
                        }
                    }
                }
            });

kendo 网格

$('#grdClaim').kendoGrid({
    height: "300px",
    sortable: true,
    resizable: true,
    filterable: true,
    editable:true,
    columns: [
        {
            sortable: false,
            filterable: false,
            width: '30px',
            field: "IsSelected",
            title: "<input type='checkbox' id='chkSelectAll' onclick='checkAll()'checked/>",
            template: '<input type="checkbox"  id="selectedIds"  name="selectedIds"  #= IsSelected ? \'checked="checked"\' : "" #  class="chkbx"/> ',
        }]});

我需要做的是让字段 "IsSelected" 在我的 Js 代码上可编辑,而不能在网格上编辑它的值?喜欢:

var grid = $("#grdClaim").data("kendoGrid");
    var dataItem = grid.dataItem($(e.target).closest("tr"));
    dataItem.set("IsSelected", $(e.target).is(":checked") ? 1 : 0);

注意:我使用的是 kendo 2013

您可以在模板中设置 disabled 属性,使列不可编辑

columns: [
    {
        sortable: false,
        filterable: false,
        width: '30px',
        field: "IsSelected",
        title: "<input type='checkbox' id='chkSelectAll' onclick='checkAll()'checked/>",
        template: '<input type="checkbox" disabled="disabled"  id="selectedIds"  name="selectedIds"  #= IsSelected ? \'checked="checked"\' : "" #  class="chkbx"/> ',
    }]