diff --git a/src/widget/multiselect/loader.js b/src/widget/multiselect/loader.js index 0101d8908..3649ce8ad 100644 --- a/src/widget/multiselect/loader.js +++ b/src/widget/multiselect/loader.js @@ -51,7 +51,8 @@ BI.MultiSelectInnerLoader = BI.inherit(BI.Widget, { this.next.setLoading(); if (this.cachItems && this.cachItems.length > 0) { this.next.setLoaded(); - this.addItems(this.cachItems.slice(0, 100)); + const items = this._composeItems(this.cachItems.slice(0, 100)); + this.addItems(items); this.cachItems = this.cachItems.slice(100); return; } @@ -170,6 +171,17 @@ BI.MultiSelectInnerLoader = BI.inherit(BI.Widget, { this.button_group.addItems.apply(this.button_group, arguments); }, + + _composeItems: function (items) { + const cacheValue = this.cachGroup.getValue(); + return items.map(item => { + return { + ...item, + selected: cacheValue.includes(item.value || item.id) + }; + }); + }, + _populate: function (items) { var self = this, o = this.options; if (arguments.length === 0 && (BI.isFunction(o.itemsCreator))) {