1

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

所以很明显我的渲染器应该看起来像

renderer: function() {

    if (there_is_a_rendered_value_in_view) {
        return rendered_value_in_view;
    }

    return 'generate some return';
}

有可能吗?

那么如何获得rendered_value_in_view呢?

更新

好像我不够详细。

好吧,之后生成的值在网格之外改变了,所以问题是:如何获取当前显示的值

4

3 回答 3

2

您始终可以将布尔标志添加rendered_value_in_view到网格本身。然后在渲染器函数中检查网格属性并返回它。

更新:这里的 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

于 2012-05-03T23:08:31.010 回答
1

尝试捕获渲染值是相当困难的。我认为更好的方法是在包含这个新值的字段中添加另一个模型。您可以使用转换方法,以便在原始值更改时,显示值也可以更改。

于 2012-05-03T23:25:19.490 回答
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';
}
于 2012-05-03T21:55:48.127 回答