extjs: выбрать / отменить выбор всех функций в сетке
Я делаю поиск на своей странице и получаю список результатов. Когда я щелкаю в сетке и нажимаю Ctrl + A, все записи в сетке должны быть выбраны. Для этого я использую следующий код.
{ key: Ext.EventObject.A,
ctrl: true,
fn: Ext.bind(this.doSelectAll, this),
defaultEventAction: "preventDefault"
}
doSelectAll: function(keyCode, event) {
var grid = this.view;
event.preventDefault();
grid.getSelectionModel().deselectAll(true);
grid.getSelectionModel().selectAll(true);
setTimeout(function() {
grid.getView().scrollBy(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,false);
}, 0.0);
grid.getView().focusRow(0);
},
У меня нет проблем с выбором всех функций. Но когда я нажимаю Ctrl + A и все записи выбираются, если я пытаюсь щелкнуть одну из этих выбранных записей, отнимает много времени, чтобы отменить выбор всех записей и выбрать одну конкретную запись, которую я нажимаю. Например, если у меня в сетке 20 записей, если в сетке я говорю ctrl + A, то выбираются все 20 записей. Теперь, если я нажму одну конкретную запись, скажем, первую запись в сетке, отмена выбора всех записей и выбор первой записи займет 1-2 секунды. Если у меня 100 записей, отмена выбора и выбора процесса занимает почти 8-10 секунд. Максимальное количество записей, которое я могу показать в своей сетке, составляет 300, а для отмены выбора и выбора одной конкретной записи требуется почти 15-18 секунд. Если во время этого процесса я пытаюсь щелкнуть где-нибудь в сетке, я получаю сообщение об ошибке сценария и спрашивает, остановить ли сценарий или продолжить. Это происходит и в Firefox, и в IE. Не уверен, что я делаю что-то не так или я что-то упускаю. Есть идеи?...