Я реализовал элемент управления combox кендо, который заполняет 10 000 записей. Существует задержка во время загрузки формы, а также при выборе поля со списком для просмотра списка. Как лучше всего решить эту проблему с производительностью. Если вы заметили, для этой комбинации реализована функция каскадирования. Он фильтрует на основе значения кода страны из другого комбо.
кендо комбо
<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;
}