2015-10-22 5 views
1

В сетке ExtJS 4.1, которая использует CheckboxModel в качестве модели выбора, при нажатии на целую строку выбирается эта строка (и соответствующий флажок установлен). Есть ли способ предотвратить случайное поведение по умолчанию и разрешить выбор строки только тогда, когда будет выбран флажок для соответствующей строки (в отличие от щелчка по всей строке)?select row only when checkbox is clicked ExtjS 4

Опять я использую ExtJS версии 4.1

Спасибо за любую помощь

Примечание: Моя сетка также имеет CellEditing plugin прилагается к нему. Я не хочу, чтобы строка была выбрана, когда плагин CellEditing активируется, когда я нажимаю на ячейку.

ответ

1

Попробуйте свойство CheckOnly на вашем CheckBoxModel:

var sm = new Ext.selection.CheckboxModel({ 
    checkOnly: true 
}); 

Из документации:

http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.selection.CheckboxModel-cfg-checkOnly

checkOnly : Boolean 

True if rows can only be selected by clicking on the checkbox column. 

Defaults to: false 

Пожалуйста, смотрите мою скрипку здесь рабочий пример: https://fiddle.sencha.com/#fiddle/vue

Обновление

Для изменения режима CheckBoxModel CheckOnly после того, как сетка была оказана:

grid.getSelectionModel().checkOnly = true; 
+0

Спасибо за вашу помощь. Проблема в том, что CheckboxModel уже определен и у меня нет доступа к коду инициализации. Как изменить этот конфиг без доступа к коду, где он был инициализирован (например, с помощью метода setCheckOnly или что-то еще)? – user765368

+0

Да, вы можете добавить checkOnly после того, как CheckBoxModel был определен, установив checkOnly в true. Я обновил ответ и скрипку, чтобы показать это. –

+0

Спасибо. Я забыл упомянуть, что в моей сетке также есть плагин CellEditing (http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.grid.plugin.CellEditing). Когда я нажимаю на столбец, чтобы активировать плагин CellEditing, выбирается соответствующая строка, включая флажок для этой строки (в любых других столбцах она работает). Спасибо за любую помощь – user765368