我已经实现了一个填充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;
}
答案 0 :(得分:1)
您可以将所有记录发送到客户端 - 使用开发人员工具查看json有效负载。我没有看到任何标准传递给您的操作,所以如果有任何过滤,它正在客户端完成(但我不熟悉Kendo ServerFiltering)。