2013-08-26 1 views
2

Я пытаюсь динамически установить заполнение на панели сетки. У меня есть некоторые данные. В случае, когда был установлен мой флажок, он должен применять дополнения cls.ExtJS - Как получить addCls() и removeCls(), чтобы показать изменения

Вот соответствующий код ExtJS:

Вот мой CSS

.permissions_panel_nopadding { 
    padding: 0px; 
} 

.permissions_panel_padding { 
    padding: 5px; 
} 

Когда флажок щелкнул, в настоящее время ничего не происходит. Я попытался использовать:

permissionsGrid.getView().refresh(); 

... но не имеет преимущественной силы.

+0

вы использовали инструменты отладки, чтобы проверить, если изменение фактически применяется? Инспекторы элементов должны дать вам представление о том, что происходит. – kevhender

+0

Да, мои console.logs возвращают true, если он есть, и false, если это не так. Я буду копать немного глубже и осмотреть элементы, чтобы увидеть изменения самостоятельно. – Alpenglow

+0

Добавлен cls. Я вижу это, когда проверяю элемент. Однако в теге стиля нет отступов. – Alpenglow

ответ

0

Вы всегда удаляете один класс и всегда добавляете другой класс. Вам нужно «переключить» классы. Если вам не нужен специальный стиль, когда флажок не установлен, вы должны добавить/удалить только один класс.

handler: function(field, value) { 
    userRoleFilter = ''; 
    if (value === true) { 
     permissionsGrid.removeCls('permissions_panel_nopadding'); 
     permissionsGrid.addCls('permissions_panel_padding'); 
    } 
    else { 
     permissionsGrid.addCls('permissions_panel_nopadding'); 
     permissionsGrid.removeCls('permissions_panel_padding'); 
    } 
    console.log(permissionsGrid.hasCls('permissions_panel_padding'), permissionsGrid.hasCls('permissions_panel_nopadding')); 
} 

Вот моя скрипка с основной панелью и только один CSS класс: https://fiddle.sencha.com/#fiddle/ne3

Смежные вопросы