mvc kendo组合框加载速度非常慢

时间:2017-04-26 16:31:18

标签: asp.net-mvc kendo-ui kendo-combobox

我已经实现了一个填充10,000条记录的kendo combox控件。表单加载期间以及选择comboxbox以查看列表时存在延迟。解决此性能问题的最佳方法是什么。如果您注意到,此组合实现了级联功能。它根据另一个组合的国家/地区代码值进行过滤。

剑道组合

   <div class="form-group">
                @Html.LabelFor(model => model.Name1, htmlAttributes: new { @class = "control-label col-md-4" })

                <div class="col-md-8">
                    <div class="editor-field">
                        @(Html.Kendo().ComboBoxFor(model => model.CustomerMasterDataId)

                 .HtmlAttributes(new { style = "width:100%" })
                .DataTextField("CustomerNumberName")
                .Placeholder("Select...")
                .DataValueField("CustomerMasterDataId")
                .Filter("contains")
                .MinLength(3)
                .DataSource(dataSource => dataSource
                      .Read(read =>
                      {
                          read.Action("RequestHeader_CustomerData", "Request")
                              .Type(HttpVerbs.Post)
                              .Data("GetSalesOfficeFilter");
                      }).ServerFiltering(true)
                                ).CascadeFrom("CountryCode").Filter("contains")

                   .Events(e =>
                   {
                       e.Change("onCustomerComboChange");
                   })
                        )
                    </div>
                    @Html.ValidationMessageFor(model => model.Name1, "", new { @class = "text-danger" })
                </div>

控制器代码

public ActionResult RequestHeader_CustomerData(string id)
        {
            var response = requestRepository.GetCustomerData(id).AsQueryable().ProjectTo<CustomerViewModel>();

            var jsonResult = Json(response, JsonRequestBehavior.AllowGet);
            jsonResult.MaxJsonLength = int.MaxValue;
            return jsonResult;
        }

1 个答案:

答案 0 :(得分:1)

您可以将所有记录发送到客户端 - 使用开发人员工具查看json有效负载。我没有看到任何标准传递给您的操作,所以如果有任何过滤,它正在客户端完成(但我不熟悉Kendo ServerFiltering)。