2013-03-27 6 views
0

Отказ от ответственности: Я совершенно не знаком с Extjs.Extjs: Как вы добавляете/удаляете класс для определенной ячейки?

У меня есть избранный слушатель на ComboBox. После выбора можно установить значение другой ячейки в:

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

Задача состоит в том, что мне может понадобиться, чтобы добавить или удалить класс для этой ячейки. У меня возникли проблемы с поиском в документах Sencha, как выбирать или манипулировать ячейкой, не устанавливая значение. Одна из возможностей состоит в том, чтобы использовать собственный обработчик в столбце, но это работает не так, как ожидалось (за исключением того, что текст/значение задано правильно). Идея взята из: http://snipplr.com/view/40942/

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

Каков наилучший способ, как добавление и удаление класса для конкретного столбца в записи?

ответ

4

Лучший гид по стилю сетки я видел до сих пор от skirtle:

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

Я думаю, что пользовательский рендер путь для вас. Будьте осторожны, чтобы вернуть фактическое значение, а не строку «hello world».

+1

мне нужно использовать tdCls изменить класс ячейки. Ниже приведен рабочий пользовательский рендерер для столбца. – egg

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; 
     } 
Смежные вопросы