You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在KendoGrid列Editable属性中传入UnitsInStock作为函数参数

解决Kendo Grid列Editable属性传递UnitsInStock参数的问题

你的代码有两个核心问题:一是函数名拼写错误(funcion应为function),二是直接传参的方式不符合Kendo Grid的回调规则。正确的做法是利用Editable回调自带的options参数,获取当前行的UnitsInStock值。

修正后的后端Grid代码

@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.ProductViewModel>()
    .Name("grid")
    .Columns(columns =>
    {
        // 仅传递函数名,无需手动加括号和参数
        columns.Bound(p => p.ProductName).Editable("checkIfEditable");
        columns.Bound(p => p.UnitPrice).Width(120);
        columns.Bound(p => p.UnitsInStock).Width(120);
        columns.Bound(p => p.Discontinued).Width(120);
    })
    .DataSource(dataSource => dataSource
        .Ajax()
        .Model(model => model.Id(p => p.ProductID))
        // 其他数据源配置...
    )
)

对应的JavaScript判断函数

在页面的<script>标签中定义函数,通过options.model获取当前行的库存值并判断:

function checkIfEditable(options) {
    // 从当前行的数据模型中取出UnitsInStock
    var unitsInStock = options.model.UnitsInStock;
    // 示例逻辑:库存大于0时允许编辑ProductName列
    return unitsInStock > 0;
}

逻辑说明

Kendo Grid的Editable回调函数会自动传入一个options对象,其中的model属性对应当前行的数据实例,直接通过它就能访问任何字段的值,不需要手动传递参数。

内容的提问来源于stack exchange,提问作者Israel Soldevilla Sanchez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:03:23