我正在构建一个过滤器函数,用于过滤表格中的所有单元格。
要做到这一点,我正在遍历我的桌面并访问我的每个记录项字段,如此。
tablestore.each(function (rec, idx) {
contains = false;
for (field in rec.data) {
var cellValueAsString = "" + rec.data[field]
}
}
我的问题是:如何获取用户在HTML页面中看到的渲染值?
我有许多渲染器,例如日期渲染器,以及从状态编号创建字符串的渲染器。
上面代码中的值 cellValueAsString 只返回基础值,而不是显示的值。有没有办法从tableStore和/或rec对象访问显示的值?
thhx!
答案 0 :(得分:2)
每个Grid列都有一个名为renderer的属性,它是一个函数。然后你的任务就是实现这个功能。为此你可以在某个地方构建一个数组(map fieldName => renderer),并在你的网格和新地方或仅在你的新地方调用它。
答案 1 :(得分:1)
请试试这个
将itemclick侦听器添加到网格中,如下所示
listeners:{
itemclick: this.getRowItem,
scope:this
}
将tdCls添加到要从中检索显示值的列。如下所示
{
text: 'Name',
dataIndex: 'name',
renderer: function(value, metadata, record){
return value+" hello";
},
tdCls:'name-render'
}
你的函数getRowItems应该如下所示
getRowItem: function(gridPanel, record, item, index, e, eOpts){
var tdItem= item.getElementsByClassName('name-render');
var actualTextDisplayed = tdItem.firstChild.innerHTML;
return actualTextDisplayed ;
}
我认为这是另一种选择。