Кендо многосекционная виртуализация: -Дисплей выбранных элементов сначала без разрыва виртуализацииJquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 Кендо многосекционная виртуализация: -Дисплей выбранных элементов сначала без разрыва виртуализации

Сообщение Anonymous »

Я использую мультиселективный виджет Kendo с виртуализацией для обработки большого набора данных.
Проблема, с которой я сталкиваюсь, заключается в том, что при открытии выпадающих локализации Multielect, выбранные элементы, которые не являются частью загруженного в настоящее время подмножества . < /p>

Код: Выделить всё

function GetUsers() {
$("#msUsers").kendoMultiSelect({
placeholder: "Select Users...",
autoClose: false,
autoWidth: true,
/*   tagMode: "none",*/
dataTextField: "UserName",
dataValueField: "UserId",
virtual: {
itemHeight: 40,
mapValueTo: "dataItem",
valueMapper: function(options) {
var ids = options.value;

if (!ids.length) {
options.success([]);
return;
}

$.ajax({
url: "/Home/GetUserByIds",
traditional: true,
data: {
ids: ids
},
success: function(response) {

if (!response.length) {
options.success([]);
return;
}
options.success(response);
},
error: function(xhr) {
console.log("Error:", xhr.responseText);
}
});
}
},
dataSource: {
transport: {
read: {
url: "/Home/BindUsers",
dataType: "json",
data: function(options) {
return {
skip: options.skip,
take: options.take,
filter: options.filter
}
}
},
parameterMap: function(data, action) {
if (action === "read") {
return {
take: data.take,
skip: data.skip,
filter: data.filter && data.filter.filters && data.filter.filters[0] ?
data.filter.filters[0].value :
"" // Default to empty if no filter is applied
};
} else {
return data;
}
}
},
schema: {
data: "Data",
total: "Total"
},
pageSize: 40,
serverPaging: true,
serverFiltering: true
},
enable: false,
open: function(e) {

debugger;
var multiselect = this;
var selectedValues = multiselect.dataItems(); // Get the selected value objects

if (selectedValues.length) {
var dataSource = multiselect.dataSource;

var currentData = dataSource.view();

const selectedUserIds = new Set(selectedValues.map(selected => selected.UserId));

var remainingUsers = currentData.filter(user =>
user.UserId && !selectedUserIds.has(user.UserId)
);

var sortedData = selectedValues.concat(remainingUsers);
console.log(sortedData);

dataSource.data(sortedData); // THIS BREAKS VIRTUALIZATION!
}

},

height: 400,
});
}
Мне нужно убедиться, что все выбранные элементы отображаются первыми без нарушения виртуализации.
Как я могу убедиться, что все Выбранные элементы отображаются в первую очередь в виртуализированной мультисекции Kendo без разрыва виртуализации? Есть ли способ динамической загрузки выбранных элементов и объединить их с помощью текущих данных данных?

Подробнее здесь: https://stackoverflow.com/questions/794 ... hout-break
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»