Select all для грида с мультивыбором 7.6

Раз поддержка отправила меня отлаживать код, вынесу вопрос из текущей работы в общую ленту для привлечения коллективного разума.
В одной из деталей на основе BaseGridDetailV2 с мультивыбором добавил в действия возможность снять все установленные "галочки", т.е. DeselectAll так:

this.set("SelectedRows", []);

А вот обратная операция не получается - нужно действием проставить все "галочки". Пробовал так:

var gridData = this.getGridData();
var collection = this.Ext.create("Terrasoft.BaseViewModelCollection");
var items = gridData.getItems();
Terrasoft.each(items, function(item) {
        collection.add(item.get("Id"));
});
this.set("SelectedRows", collection);

Не получается - то есть галочки не появляются.
Кто-нибудь пробовал такое действие сделать, коллеги? В системе примера не нашел...

Нравится

4 комментария

Добрый день Александр!!!

из вашего сообщения недопонял, что вы желаете реализовать Select ALL или DeSelect ALL. поясните пожалуйста. и я тогда вам приведу пример кода.

"Власов Михаил Викторович" написал:Select ALL

Именно select all. Буду очень благодарен за пример.
Deselect вполне получился.

Александр, добрый день!

В первом случае Вы присваиваете атрибуту "SelectedRows" пустой массив, а во втором пытаетесь присвоить коллекцию. Попробуйте во втором случае также присвоить массив идентификаторов:

var gridData = this.getGridData();
var selectedRows = [];
var items = gridData.getItems();
Terrasoft.each(items, function(item) {
        selectedRows.push(item.get("Id"));
});
this.set("SelectedRows", selectedRows);

Олег, спасибо. Ошибку свою понял, разобрался, все получилось.

Показать все комментарии