我希望我的渲染器每行只运行一次。
显然,我的渲染器应该看起来像
renderer: function() {
if (there_is_a_rendered_value_in_view) {
return rendered_value_in_view;
}
return 'generate some return';
}
有可能吗?
那么如何获得rendered_value_in_view
?
UPD :
好像我不够详细。
那么,之后生成的值会在网格外部更改,因此问题是:如何获取当前显示的值
答案 0 :(得分:2)
您始终可以向网格本身添加布尔标记和rendered_value_in_view
。然后在渲染器函数中检查grid属性并返回它。
更新:来自Sencha文档的是渲染器函数将获得的参数列表:
value : Object
metaData : Object
record : Ext.data.Model
rowIndex : Number
colIndex : Number
store : Ext.data.Store
view : Ext.view.View
我认为最后一个将是你的网格对象。
http://docs.sencha.com/ext-js/4-0/#!/api/Ext.grid.column.Column-cfg-renderer
答案 1 :(得分:1)
尝试捕获渲染值非常困难。我认为更好的方法是在您的字段中添加另一个包含此新值的模型。您可以使用转换方法,以便在原始值更改时,显示值也可以更改。
答案 2 :(得分:0)
也许 -
...
there_is_a_rendered_value_in_view:false,
renderer:function() {
if (!this.there_is_a_rendered_value_in_view) {
this.there_is_a_rendered_value_in_view=true;
return rendered_value_in_view;
}
return 'generate some return';
}