我有一个剑道多选小部件,它绑定了大量的数据,为了处理这个问题,我将小部件虚拟化,并将压力施加到服务器上。
我试图通过一个传递id数组的javascript函数来选择一些初始数据。它工作得很好
只有
所选择的数据在小部件的第一个分页结果集中,如果任何ID在后面,那么它们就不会被选择,我需要修复它。
@(Html.Kendo().MultiSelect()
.Name("Cars")
.DataTextField("Name")
.DataValueField("Id")
.Placeholder("Select cars...")
.Filter(FilterType.Contains)
.DataSource(source => { source
.Custom()
.ServerFiltering(true)
.Events(e => e.Error("errorHandler"))
.ServerPaging(true)
.PageSize(80)
.Type("aspnetmvc-ajax")
.Transport(transport => {
transport.Read("GetData", "Positions");
})
.Schema(schema => { schema
.Data("Data")
.Total("Total")
.Errors("Errors");
});
}))
数据是从
GetData
获取数据
public JsonResult GetData([DataSourceRequest] DataSourceRequest request)
{
var car = unitOfWork.CarRepository.Get().OrderBy(n => n.Name);
var results = vessel.ToDataSourceResult(request);
return Json(results);
}
function initialSelection(filter) {
//filter is: "6544","4880","6545","6548"
var carSelection = $("#Cars").data("kendoMultiSelect");
var filterArray = filter.split(',').map(Number);
if (filterArray.length > 0) {
console.log(filterArray)
carSelection.value(filterArray);
} else {
carSelection.value();
}
}
有没有比我使用上面的javascript更好的方法来进行数据的初始选择?如我所说,如果id不在返回的结果的第一页上,它们就不会被选中,这是令人沮丧的。