如何在网格中的渲染器中获取当前渲染值?

时间:2012-05-03 21:50:39

标签: javascript extjs extjs4 extjs4.1

我希望我的渲染器每行只运行一次。

显然,我的渲染器应该看起来像

renderer: function() {

    if (there_is_a_rendered_value_in_view) {
        return rendered_value_in_view;
    }

    return 'generate some return';
}

有可能吗?

那么如何获得rendered_value_in_view

UPD

好像我不够详细。

那么,之后生成的值会在网格外部更改,因此问题是:如何获取当前显示的

3 个答案:

答案 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';
}