1

レンダラーを行ごとに 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して、グリッド自体に追加できます。そして、レンダラー関数で 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

于 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 に答える