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

Kendo Grid数据获取问题:无法提取Description字段的sd值

解决Kendo Grid无法访问数据对象属性的问题

嘿,我来帮你搞定这个问题~ 你遇到的情况其实挺常见的,尤其是刚接触Kendo UI的时候,咱们一步步来捋清楚:

先搞明白问题根源

你说直接打印_data[0]控制台显示空白,但JSON.stringify(_data[0])能输出内容,这是因为Kendo Grid的_data里的对象是惰性加载的封装对象——控制台默认只显示对象的表层结构,只有当你展开它的时候才会去读取实际数据,所以直接打印看起来是空的,但数据其实实实在在存在。

而你之前尝试的两种写法都有小问题:

  • toString(Description):toString()方法不需要传参数,而且如果Description不是一个已定义的变量,这里会直接报错;
  • JSON.stringify(_data[0].Description):如果_data[0]的Description属性不存在(或者大小写不匹配),就会输出undefined,但你说JSON.stringify(_data[0])有输出,说明属性肯定在里面,只是访问方式不对。

正确的解决步骤

  1. 先确认属性的真实名称
    把JSON.stringify(_data[0])的输出复制出来,仔细核对属性名是不是Description(注意大小写!Kendo会严格对应后端返回的字段名,比如后端返回的是description小写,这里就不能用大写访问)。

  2. 直接访问属性(最简单的方式)
    如果属性名确认是Description,直接这样写就行:

    const grid = $("#grid").data("kendoGrid");
    const firstRowData = grid._data[0];
    console.log(firstRowData.Description); // 这下应该能拿到"sd"了
    
  3. 推荐用官方API(更稳妥)
    直接访问_data属于操作私有属性,Kendo的版本更新可能会修改这个属性名,所以更推荐用官方提供的dataItem方法来获取行数据:

    const grid = $("#grid").data("kendoGrid");
    // 获取第一行的数据对象(索引从0开始)
    const firstRowData = grid.dataItem(0);
    console.log(firstRowData.Description);
    

额外小技巧

如果还是不确定属性名,可以用Object.keys()来查看对象的所有可访问属性:

console.log(Object.keys(firstRowData));

这样就能列出这个数据对象的所有属性,精准找到你要的Description(或者对应的字段名)。

内容的提问来源于stack exchange,提问作者MrLakish

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:59:43