Цель состоит в том, чтобы иметь возможность передавать отфильтрованный набор данных в просмотр списка, который я также могу набирать и находить. У меня был код, работающий должным образом, пока я не преобразовал в тип и найти (также известный как select2).
Вот код, работающий без предварительной фильтрации.
@(Html.Kendo().DropDownList()
.Name(ViewData.TemplateInfo.HtmlFieldPrefix)
.DataTextField(TextField)
.DataValueField(ValueField)
.MinLength(3)
.ValuePrimitive(true)
.AutoBind(false)
.Filter(FilterType.Contains)
.DataSource(source =>
{
source.Read(read => { read.Action("Get" + SrcTable + "s", "Support", readParams); });
})
.Virtual(v => v.ItemHeight(26))
.OptionLabel(OptionLabelText)
.Value(Model.ToString())
.HtmlAttributes(HtmlAttributes))
и вот рабочий код для предварительной фильтрации.
@(Html.Kendo().DropDownList()
.Name(ViewData.TemplateInfo.HtmlFieldPrefix)
.DataTextField(TextField)
.DataValueField(ValueField)
.ValuePrimitive(true)
.AutoBind(false)
.DataSource(source =>
{
source.Read(read => { read.Action("Get" + SrcTable + "s", "Support", readParams)
.Data("filter" + ViewData.TemplateInfo.HtmlFieldPrefix);
})
.ServerFiltering(true);
})
.OptionLabel(OptionLabelText)
.Value(Model.ToString())
.CascadeFrom(cascade)
.HtmlAttributes(HtmlAttributes)
)
Поле .Data представляет собой хакерский javascript, который получает текущее значение того, что находится в элементе управления. Он передается в контроллер, потому что у нас есть «деактивированные» элементы в базе данных, и мы хотим показать текущий, если он находится в существующей записи, но отфильтровать остальные.
Теперь вот проблема: я не могу объединить их вместе. Когда я пытаюсь, это нарушает поиск ввода. Кто-нибудь может сказать мне, почему?