【发布时间】:2016-06-22 16:17:28
【问题描述】:
我需要绑定到组合框的大约 6000 条记录。当用户输入至少 2 个字符时,我正在对其进行服务器过滤。它第一次工作正常,但是当我清除组合框时,我的页面冻结了。
以下是我启动组合框的方式。
$("#myList").kendoComboBox({
filter: "startswith",
dataTextField: "xName",
dataValueField: "xId",
template: '<span>#:xName# (#:gName#-#:gmName#)</span>',
dataSource: viewModel.get("mydataList"),
height: 400,
autoBind: false,
minLength: 2,
}).data("kendoComboBox");
以下是我指定数据源的方式:
mydataList= new kendo.data.DataSource({
transport: {
read: {
dataType: "json",
},
parameterMap: function (options, operation) {
if (operation !== "read" && options.models) {
return {
models: kendo.stringify(options.models)
};
}
}
},
serverFiltering: true
}
);
另外请建议我是否可以隐藏下拉箭头。
【问题讨论】:
-
你为什么要这样定义你的数据源?只需使用剃刀语法。另外,发布您执行过滤的控制器操作。
-
我没有其他特定代码可以进行过滤。这段代码本身就是这样做的。因此,如果我键入“AS”,它会提取所有带有“AS”的数据,但如果是删除“AS”,它会冻结。然后控件似乎尝试与所有记录绑定。
-
在这段代码中过滤是在哪里完成的?另外,没有任何服务器代码(控制器操作)的服务器过滤怎么能做到呢?
标签: javascript jquery asp.net-mvc kendo-ui kendo-asp.net-mvc