Выбор первой строки сетки ExtJS и отмена выбора

Нормально ли, что когда у меня есть сетка, и я выбираю первую строку, а затем пытаюсь выбрать другую строку, она фактически отменяет выбор первой строки, не выбирая новую? Мне это кажется особенностью, потому что это происходит со всеми моими сетками даже с самыми простыми настройками. Есть ли способ удалить эту опцию?


person PentaKon    schedule 07.07.2014    source источник
comment
Какую версию ExtJS вы используете?   -  person forgivenson    schedule 07.07.2014


Ответы (2)


Да, это поведение по умолчанию. Вы можете установить режим выбора множественного выбора, который позволяет вам выбирать несколько строк, удерживая клавиши CTRL или SHIFT.

Я не уверен, какую версию ExtJS вы используете, но если это версия 4.2, вы можете установить mode модели выбора на 'SIMPLE', чтобы добиться ожидаемого поведения.

Ext.create('Ext.panel.Grid', {
    // other grid configs
    selModel: {
        mode: 'SIMPLE'
    }
}

Документы для конфигурации mode находятся здесь: http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.selection.Model-cfg-mode

person forgivenson    schedule 07.07.2014
comment
Я нашел упомянутую вами selModel, но не совсем понял, что делает режим SIMPLE. Спасибо за ответ - person PentaKon; 07.07.2014
comment
На самом деле теперь, когда я протестировал решение, это не то, что я хочу. По сути, мне нужна сетка, которая ведет себя так же, как файловая система Windows. Каждый щелчок отменяет выбор всего, что вы выбрали (независимо от того, первый это элемент или любой другой), а ctrl и Shift используются для множественного выбора. По сути, мне нужен режим: «МУЛЬТИ», но без поведения по умолчанию для первой строки сетки. - person PentaKon; 08.07.2014
comment
Я не знаю, что вы имеете в виду под поведением по умолчанию первой строки сетки, но 'MULTI' — это то, что вы только что описали, как в Windows. - person forgivenson; 08.07.2014
comment
Если вы выберете ПЕРВУЮ строку в сетке, а затем попытаетесь выбрать другую строку, она ДОЛЖНА: - Отменить выбор первой строки. -Выберите новую строку. Однако, что он ДЕЛАЕТ: - Отмените выбор первой строки. Он не выбирает новую строку, которую я нажал. Это происходит только в том случае, если вы пытаетесь перейти из строки 1 в любую другую строку. Из любого другого ряда это происходит подобно окнам. - person PentaKon; 08.07.2014
comment
Странный. Я никогда не видел, чтобы это произошло. У меня есть сетки с множественным выбором, и они отлично работают, даже если сначала выбрать первую строку. Вот скрипт, который представляет собой простую сетку с включенным множественным выбором: fiddle.sencha.com/# скрипка/7g7 - person forgivenson; 08.07.2014
comment
Это то, что я ищу, но это не то, как это работает на моей стороне... Хотя я не использую встроенные данные, но это не должно быть проблемой... Я проверю это снова завтра, когда Я иду на работу и пробую некоторые вещи. - person PentaKon; 08.07.2014
comment
У меня есть множество других гридов, которые я написал, которые используют удаленные хранилища, и они работают точно так же, как пример, который я привел. Что-то еще в вашей сетке должно быть причиной этой проблемы. У вас есть слушатели, когда строка выбрана? Попробуйте урезать его до минимума, пока он не заработает правильно, а затем постепенно добавляйте новые функции, пока не обнаружите, что один из них сломает его. - person forgivenson; 08.07.2014
comment
Проблема была с Extjs 4.2.1, кажется. Когда я обновился до 4.2.2, все отлично заработало. - person PentaKon; 17.07.2014

Кажется, это была ошибка моей версии ExtJS. Мои коллеги использовали 4.2.2, а я использовал 4.2.1. При переходе на новую версию все исправилось само собой. Странно, потому что это, кажется, не было задокументировано...

person PentaKon    schedule 11.07.2014
comment
Ладно, я рад, что ты это понял. - person forgivenson; 17.07.2014