0

免責事項: 私は Extjs の初心者です。

ComboBox に選択リスナーがあります。選択したら、別のセルの値を設定できます。

'select': function (combo, records, Opts) {
    e.record.set('value', 'hello world'); //set text for the "value" cell
    ....

課題は、そのセルのクラスを追加または削除する必要がある場合があることです。Sencha Docs で、値の設定以外にセルを選択または操作する方法を見つけるのに苦労しています。1 つの可能性は、列でカスタム レンダラーを使用することですが、これは期待どおりに機能しません (テキスト/値が正しく設定されることを除く)。アイデアの引用: http://snipplr.com/view/40942/

        ,renderer: function (value, meta, record, rowIndex, colIndex, store) {
            meta.css += ' rw-no-edit';
            return 'hello again';

レコードの特定の列のクラスを追加および削除する最良の方法は何ですか?

4

2 に答える 2

6

これまでに見た中で最高のグリッド スタイル ガイドは、skirtle のものです。

http://skirtlesden.com/articles/styling-extjs-grid-cells

カスタム レンダラーが最適な方法だと思います。「hello world」文字列ではなく、実際の値を返すように注意してください。

于 2013-03-27T21:31:44.330 に答える
0

作業ソリューション:

        ,renderer: function (value, meta, record, rowIndex, colIndex, store) {
            var numberOfEditFields = K.kreports.whereOperators.bh(record.get('operator'), record.get('type'));
            if (!K.kreports.EditView) {
                if (record.get('usereditable') == 'yo1' || record.get('usereditable') == 'yo2') numberOfEditFields = 0;
            }

            //de-emphasize cells that are not needed
            var base_css = 'x-grid-cell x-grid-cell-value';
            meta.tdCls = base_css;
            if(numberOfEditFields === 0) {
                meta.tdCls = base_css+' rw-no-edit'; 
            }

            return value;
        }
于 2013-03-28T15:30:34.083 に答える