1

私はグリッド上にこれを持っています:

{                xtype: 'actioncolumn',
            renderer: function (val, metadata, record) {
                if (record.raw.possibleActions != 2) {
                    this.items[0].icon = '';
                    this.items[0].tooltip = '';
                }

                metadata.style = 'cursor: pointer;';
                return val;
            },
            width: 30,
            align: 'center',
            sortable: false,
            items: [{
                icon: 'images/edit.png',
                tooltip: 'stuff',
                handler: function (grid, rowIndex, colIndex) {
                    'do stuff'
                }
            }]
        },

フィールド「possibleActions」が2と異なる場合、アクション列のアイコンを非表示にする必要があります。

これによりthis.items[0].icon = '';、すべての列からアイコンが削除されます...

条件に一致する特定の行の列にアクセスするにはどうすればよいですか??

4

2 に答える 2

5

私はそれを解決しました:

renderer: function (val, metadata, record) {
                if (record.raw.possibleActions != 2) {
                    this.items[0].icon = '';
                    this.items[0].tooltip = '';
                } else {
                    this.items[0].icon = 'images/edit.png';
                    this.items[0].tooltip = 'RELATÓRIO FINAL';
                }

                metadata.style = 'cursor: pointer;';
                return val;
            },

レンダラーが初期構成を上書きしているようで、それがすべてのレコードにアイコンがなかった理由です。

于 2012-11-28T12:20:59.230 に答える
1

そこをうまく使うthisのは本当に危険です。他のインスタンスで終わる可能性があります。

しかし、わかりました。インスタンスがある場合は、使用することをお勧めします

setVisible(false);
disable();

無効にして

setVisible(true);
enable(); 

有効にする。画像を削除するだけでは十分ではありません。

于 2012-11-28T10:39:01.350 に答える