在 kendo ui grid 中,通过 uid 获取 dataitem 时若始终返回 null,根本原因往往不是 uid 本身错误,而是调用 `grid.dataitem()` 所依赖的 dom 元素不符合 grid 内部校验要求:该方法仅接受由 grid 渲染并维护的原生 `
更可靠、推荐的做法是跳过 DOM 层级,直接操作数据源:
// ✅ 正确方式:通过 dataSource.getByUid() 获取 dataItem
var grid = $("#yourGridID").data("kendoGrid");
if (grid && grid.dataSource) {
var uidValue = "b318f970-79ec-472e-818f-f0d5adb6b5f3";
var dataItem = grid.dataSource.getByUid(uidValue);
if (dataItem) {
console.log("成功获取 dataItem:", dataItem);
// 可安全访问字段,如 dataItem.name、dataItem.id 等
} else {
console.warn("未找到 UID 对应的数据项,请确认 UID 是否存在于当前 dataSource 中");
}
}⚠️ 注意事项:
("#yourGridID").data("kendoGrid") 不为 undefined),建议将逻辑置于 dataBound 事件回调或 setTimeout(..., 0) 延迟执行以保障初始化完成。✅ 总结:当 grid.dataItem(tr) 返回 null 时,优先转向 dataSource.getByUid(uid) ——它更稳定、语义更清晰,且与 Kendo 数据生命周期深度对齐,是处理 UID 查找场景的标准实践。