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

Kendo Grid通过dataRow获取dataItem始终为null的问题排查

Kendo Grid dataItem返回null的排查原因

以下是针对你遇到的问题,结合代码场景的可能原因及排查方向:

  • Grid数据未完成绑定:你的代码位于Ajax调用内,Ajax请求完成后DOM可能已更新,但Grid的数据源还未完成重新绑定。此时DOM中的tr节点存在,但Grid内部数据模型未同步,调用dataItem()自然返回null。可以通过监听Grid的dataBound事件,在事件回调中执行这段代码;或者手动调用dataGrid.refresh()确保数据绑定完成后再获取dataItem。

  • DOM元素归属错误:虽然通过[data-uid]找到了tr节点,但要确认该节点确实属于当前dataGrid的tbody。如果页面存在多个Grid或嵌套Grid,可能误获取了其他Grid的行节点。可以打印dataRow.parentNode,检查是否与dataGrid.tbody[0]一致。

  • UID与数据源记录不匹配:DOM中tr的data-uid是Grid初次渲染时生成的,但如果Ajax请求更新了数据源,新记录的UID可能与你手动填写的旧UID不匹配。即使DOM中仍存在该UID的tr,Grid内部数据源已无对应记录,dataItem()会返回null。可以打印dataGrid.dataSource.data(),检查其中是否存在UID为b318f970-79ec-472e-818f-f0d5adb6b5f3的记录。

  • DOM元素传递方式问题:你使用[0]将jQuery对象转为原生DOM元素,虽然Kendo的dataItem()支持传入原生DOM元素,但如果该元素并非Grid直接管理的行节点(比如是模板嵌套的其他tr),会导致返回null。可以尝试直接传入jQuery对象:var dataItem = dataGrid.dataItem(dataGrid.tbody.find("tr[data-uid='" + uidValue + "']")),去掉[0]后再测试。

  • Grid实例引用错误:确认row.find(".k-grid").data("kendoGrid")获取的是目标Grid实例。如果row的上下文不正确,可能找到的是其他Grid。可以打印dataGrid,检查其配置(如id)是否符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:27:20