diff --git a/src/widget/multiselect/multiselect.loader.nobar.js b/src/widget/multiselect/multiselect.loader.nobar.js index 95c8f6fbc..d7744d042 100644 --- a/src/widget/multiselect/multiselect.loader.nobar.js +++ b/src/widget/multiselect/multiselect.loader.nobar.js @@ -55,22 +55,23 @@ BI.MultiSelectNoBarLoader = BI.inherit(BI.Widget, { }, itemsCreator: function (op, callback) { var startValue = self._startValue; - var firstItems = []; self.storeValue && (op = BI.extend(op || {}, { selectedValues: BI.isKey(startValue) && self.storeValue.type === BI.Selection.Multi ? self.storeValue.value.concat(startValue) : self.storeValue.value })); - if (self.storeValue) { - var json = BI.map(self.storeValue.value.slice((op.times - 1) * 100, op.times * 100), function (i, v) { - var txt = opts.valueFormatter(v) || v; - return { - text: txt, - value: v, - title: txt, - selected: self.storeValue.type === BI.Selection.Multi - }; - }); - if (op.times === 1) { + opts.itemsCreator(op, function (ob) { + hasNext = ob.hasNext; + var firstItems = []; + if (op.times === 1 && self.storeValue) { + var json = BI.map(self.storeValue.value, function (i, v) { + var txt = opts.valueFormatter(v) || v; + return { + text: txt, + value: v, + title: txt, + selected: self.storeValue.type === BI.Selection.Multi + }; + }); if (BI.isKey(self._startValue) && !BI.contains(self.storeValue.value, self._startValue)) { var txt = opts.valueFormatter(startValue) || startValue; json.unshift({ @@ -80,22 +81,10 @@ BI.MultiSelectNoBarLoader = BI.inherit(BI.Widget, { selected: true }); } + firstItems = self._createItems(json); } - if (op.times < Math.floor((self.storeValue.value.length - 1) / 100)) { - hasNext = true; - callback(self._createItems(json), op.keyword || ""); - (op.times === 1) && self._scrollToTop(); - return; - } - firstItems = self._createItems(json); - } - var times = op.times - Math.max(0, Math.floor((self.storeValue.value.length - 1) / 100)); - opts.itemsCreator(BI.extend({}, op, { - times: times - }), function (ob) { - hasNext = ob.hasNext; - callback(firstItems.concat(self._createItems(ob.items)), ob.keyword || op.keyword || ""); - if (times === 1 && self.storeValue) { + callback(firstItems.concat(self._createItems(ob.items)), ob.keyword || ""); + if (op.times === 1 && self.storeValue) { BI.isKey(startValue) && (self.storeValue.type === BI.Selection.All ? BI.remove(self.storeValue.value, startValue) : BI.pushDistinct(self.storeValue.value, startValue)); self.setValue(self.storeValue); }