Disable KendoGrid editing

本文介绍如何在KendoGrid中禁用整个表格或特定列的编辑功能,包括通过JavaScript设置不可编辑属性,并提供示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、禁止整个KendoGrid编辑

将grid 转成kendo widgetInstance, 然后将属性editabled 设为 false 

var $girdEles = $("#grid");
//设置grid的不可修改  
for (var i = 0; i < $girdEles.length; i++) {
    var $ele = $($girdEles[i]),
        widget = kendo.widgetInstance($ele);    //将元素转换成kendo实例  


    if (widget) {
        widget.setOptions({
            editable: false
        });
    }
}

// 隱藏Toolbar
//$("#grid .k-grid-toolbar").hide();

//屏蔽Button組件  
$("#grid .k-grid-toolbar .k-button").each(function () {
    $(this).addClass("k-state-disabled").attr("disabled", "disabled").removeAttr("onclick");
});               

二、禁止某列(Column)编辑
可以参考这里的做法 Disable editing in kendo grid   演示例子 
html
<a href="#" id="button1" class="k-button">Disable Firstname</a>
<a href="#" id="button2" class="k-button">Enable Firstname</a>
<div id="grid"></div>

js
var grid = $("#grid").kendoGrid({
    dataSource: {
        data    : createRandomData(50),
        pageSize: 10,
        schema  : {
            model: {
                fields: {
                    id       : { type: 'number' },
                    FirstName: { type: 'string' },
                    LastName : { type: 'string' },
                    City     : { type: 'string' },
                    Title    : { type: 'string' },
                    BirthDate: { type: 'date' },
                    Age      : { type: 'number' }
                }
            }
        }
    },
    editable  : "incell",
    pageable  : {
        refresh  : true,
        pageSizes: true
    },
    columns   : [
        {
            field: "FirstName",
            width: 90,
            title: "First Name"
        } ,
        {
            field: "LastName",
            width: 90,
            title: "Last Name"
        } ,
        {
            width: 100,
            field: "City"
        } ,
        {
            field: "Title"
        } ,
        {
            field   : "BirthDate",
            title   : "Birth Date",
            template: '#= kendo.toString(BirthDate,"dd MMMM yyyy") #'
        } ,
        {
            width: 50,
            field: "Age"
        }
    ]
}).data("kendoGrid");
$("#button1").on("click", function (e) {
    var data = grid.dataSource.at(0);
    console.log("data", data);
    data.fields["FirstName"].editable = false;
});
$("#button2").on("click", function (e) {
    var data = grid.dataSource.at(0);
    data.fields["FirstName"].editable = true;
});
效果图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值