Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Изменение цвета выделенных строк (https://javascript.ru/forum/extjs/51548-izmenenie-cveta-vydelennykh-strok.html)

maksimka2112 10.11.2014 21:54

Изменение цвета выделенных строк
 
Никак не пойму как изменить цвет выделенных ячеек...вроде задача-то не сложная...
Ext.getCmp('id_w_mtr') - это grid.
Ext.getCmp('id_w_mtr').selModel.on('rowselect',function(sm, rowIdx, r){
sm.style.background='red';
});

Это конечно точно не так. Но как же добраться до стиля?

Использую 3 версию Ext

danik.js 11.11.2014 04:40

Так вроде они css-класс получают особый. Настрой свой css.

maksimka2112 11.11.2014 08:08

мне надо,чтобы при клике на строку менялся её стиль! дизайн в css я настрою,но мне надо при клике фон менять! фон строк,на которые нажимаю

danik.js 11.11.2014 08:44

Цитата:

Сообщение от danik.js
мне надо,чтобы при клике на строку менялся её стиль!

Так при клике или при выборе?! Это же не одно и тоже! Определись сначала!

maksimka2112 11.11.2014 12:28

ну пусть будет при клике,это неважно. главное сделать другой фон у строки,на которую нажал. в джава скрипт я бы событие на tr повесил и изменил бы значение style.background. а здесь так не получается,не пойму как добраться до объекта,которому менять background.

danik.js 11.11.2014 12:36

Ты че чудишь? Это дефолтое поведение гридов в ExtJS - по клику идет выделение строки. В Ext4 синеньким выделяется. В Ext3 мож другим цветом.

maksimka2112 11.11.2014 12:59

о,боги!)))профессор,какой ты потешный))раскрыл глаза мне на истину) у меня чекбоксмодэл. я выделяю несколько позиций. жму кнопку и эти отмеченные строки должны изменить фон. вот и всё,не хотел грузить лишними рассказами,но коли надо...:)

maksimka2112 11.11.2014 21:14

Засел с какой-то ерундой, аж самому противно...
вот как делаю (точнее сказать буду делать что-то наподобие):
var c=Ext.getCmp('id_w_mtr').selModel.getSelections();
var lCheckModif=Ext.getCmp('id_w_mtr').store.getCount();

for (var j=0;j<lCheckModif;j++){

    Ext.fly(Ext.getCmp('id_w_mtr').getView().getRow(j)).addClass('error');
}


Завтра переберу все значения из таблицы на равенство с выделенными чекбоксами. Те записи, которые совпадут, отправлю в Ext.fly(Ext.getCmp('id_w_mtr').getView().getRow(j) ).addClass('error');
Вроде команда
Ext.fly(Ext.getCmp('id_w_mtr').getView().getRow(0)).addClass('error');

работает сносно и меняет стиль для первой строки. А стало быть меняет фон, прописанный в css для класса 'error'.
Всё конечно крайне кривенько, но...может кому-то мои догадки помогут. Надеюсь, завтра напишу окончательный вариант.

Infarch 12.11.2014 12:22

Так в чем конкретно задача? Нужно просто поменять дефолтный стиль для выбранных строк? Или менять стиль выделенных строк при определенном событии (например нажатии кнопки), иными словами не всегда?

Если первый случай, то советую создать свой компонент унаследованный от стандартного грида и переопределить его sass.

Если второй, то тоже создаем свой компонент, стиль не переопределяем, а создаем новое правило. По событии берем выделенные строки и добавляем нужный класс.

siber-biber 12.11.2014 14:18

Цитата:

Сообщение от maksimka2112 (Сообщение 340404)
о,боги!)))профессор,какой ты потешный

а вы прям стимулируете энтузиазм единственного чела который потрудился ответить вам..


Часовой пояс GMT +3, время: 15:55.