如何从DevExtreme DataGrid的CellTemplate调用的JS方法中提取数据?
解决DevExtreme DataGrid CellTemplate中提取行数据的问题
在DevExtreme DataGrid的CellTemplate回调函数中,你直接访问data.ShipCountry出问题的原因是:传入的参数不是直接的行数据对象,而是包含单元格上下文信息的复合对象,行数据实际嵌套在该对象的data属性中。
修正后的代码
将你的JavaScript函数修改为:
function transformData(cellElement, cellInfo) { // cellInfo.data 对应当前行的SampleOrder实体 return cellInfo.data.ShipCountry.toUpperCase(); }
调试辅助方案
如果不确定参数结构,可以在函数里打印完整参数到控制台,直观查看内部属性:
function transformData(cellElement, cellInfo) { console.log(cellInfo); // 在浏览器控制台查看完整的单元格信息对象 return cellInfo.data?.ShipCountry?.toUpperCase() || ''; // 可选:添加空值保护避免报错 }
参数结构说明
DevExtreme为CellTemplate传入两个核心参数:
- 第一个参数
cellElement:当前单元格的DOM元素 - 第二个参数
cellInfo:包含单元格上下文的信息对象,其中cellInfo.data才是你需要的当前行绑定实体(即SampleOrder对象)
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

