Проблема, с которой я сталкиваюсь, заключается в том, что при открытии выпадающих локализации 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