我曾尝试使用具有如下结构的数据源的Kendo Combobox:
{text: "12 Angry Men", value:"1"}
并且Kendo Combobox被初始化为:
$("#movies").kendoComboBox({
dataTextField: "text",
dataValueField: "value",
dataSource: data,
height: 100
})
.closest(".k-widget")
.attr("id", "movies_wrapper")
;
$("#filter").kendoDropDownList({
change: filterTypeOnChanged
});
发现对于大约40,000个对象的数据,每次加载组合框需要3秒的延迟,打开组合框需要6-7秒的延迟。
我调试了本机代码,发现对于要在弹出窗口中显示的这么多对象,处理动画确实需要一些时间。
因此,我尝试将动画作为false进行传递。
但是这仍然没有降低delay.Can有人帮助解决这个问题吗?
发布于 2014-10-09 00:06:28
我自己也遇到了类似的问题,试图加载近似。20000个项目放入一个组合框中。
绕过它的方法是使用服务器过滤来仅拉回有限数量的结果。我发现100是一个足够好的数字,如果结果不在那里,那么过滤条件需要更具体一点才能得到最终正确的项目。
这显然意味着需要更多的访问服务器才能获得结果,但我发现这是值得的。
$('#' + fullControlID).kendoComboBox({
dataTextField: 'Text',
dataValueField: 'Value',
filter: "contains",
autoBind: true,
ignoreCase: true,
minLength: 3,
change: function (e) {
$('#' + fullControlID).data("kendoComboBox").dataSource.read();
},
dataSource: {
serverfiltering: true,
serverPaging: true,
pageSize: 100,
transport: {
read:
{
type: "POST",
dataType: "json",
url: transportUrl,
cache: false,
data: {
filterText: function () {
var filter = $('#' + fullControlID).data("kendoComboBox").input.val();
if(filter === '{the place holder text ignore it}')
{
filter = '';
}
return filter;
}
},
}
}
}
});
上面是一些代码,我使用适当的控制器/动作(使用mvc)在幕后完成此操作。
如果您需要更多信息,请让我知道。
注意:(fullcontrolID是组合框控件的id )。
https://stackoverflow.com/questions/26256863
复制相似问题