Kendo ui Kendo UI Dropdownlist从大型数据源缓慢加载

Kendo ui Kendo UI Dropdownlist从大型数据源缓慢加载,kendo-ui,kendo-dropdown,Kendo Ui,Kendo Dropdown,我在模板中使用剑道下拉列表。它加载用于签署记录的客户端名称列表。客户机名称列表有8k个条目 表单加载正常,但如果我选择dropdownlist来更改客户端名称,则需要大约10秒钟的时间才能显示列表。我能做些什么来加快速度吗 我的数据源: var dsClients = new kendo.data.DataSource({ transport: { read: { url: "/data/clients/key", dataTyp

我在模板中使用剑道下拉列表。它加载用于签署记录的客户端名称列表。客户机名称列表有8k个条目

表单加载正常,但如果我选择dropdownlist来更改客户端名称,则需要大约10秒钟的时间才能显示列表。我能做些什么来加快速度吗

我的数据源:

 var dsClients = new kendo.data.DataSource({
    transport: {
        read: {
          url: "/data/clients/key",
          dataType: "jsonp"
      },
      parameterMap: function(options, operation) {
          if (operation === "read") {
              return options;
          }
      }
    },
    serverSorting: true,
    sort: [{ field: "text", dir: "asc" }]
});
我的模板中的元素:

 <input name="idclt_clm" data-bind="value:idclt_clm" data-value-field="value" 
   data-text-field="text" data-option-label="Select" data-source="dsClients" 
   data-role="dropdownlist" required validationMessage="Required" /> 

我知道有两种选择

您可以添加虚拟化,我刚刚从 . 您可以启用自动绑定,并使用需要2个字符才能触发搜索的搜索筛选器。下面是我如何使用asp.net和JS完成的

@剑道 .下载列表 .NameGridName .HtmlAttributesnew{@class=form control} .DataSourceds=>ds.Readread=> read.ActionYourFunction、YourController.DatafilterFunction .ServerFilteringtrue .MinLength2//有效搜索的字符数 .Delay250//触发搜索的延迟毫秒 .AutoClosefalse .AutoBindfalse .IgnoreCasetrue .DataTextFieldText .DataValueFieldValue .占位符输入至少2个要搜索的字母 .FilterFilterType.Contains

函数过滤器函数{ 返回{ text:$GridName.datakendoDropDownList.input.val }; }


如果搜索速度仍然很慢,您可以更改字符数。那么,如果您同时执行这两项操作呢?也许这不是最好的办法,但对我来说它奏效了。 我有一个组合框,它从级联事件中获取信息,所以它会尝试任何一种方式来填充它。因此,在服务器端发送填充请求后,我有一个客户端事件:

.FilterContains.MinLength.FilteringAction


它将通过ajax到达服务器,捕捉会话变量和您试图填充CB的表/列表。然后过滤所需列表并将其发送回您的CB

有8k条目的下拉列表有意义吗?您的用户是否愿意向下滚动8k条目?“自动完成不是更好吗?”OnaBai是对的。在这种情况下,DropDown不是合适的小部件。