проблема при предварительной фильтрации содержимого списка типа "находи и находи" telerik - PullRequest
0 голосов
/ 06 ноября 2018

Цель состоит в том, чтобы иметь возможность передавать отфильтрованный набор данных в просмотр списка, который я также могу набирать и находить. У меня был код, работающий должным образом, пока я не преобразовал в тип и найти (также известный как 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, который получает текущее значение того, что находится в элементе управления. Он передается в контроллер, потому что у нас есть «деактивированные» элементы в базе данных, и мы хотим показать текущий, если он находится в существующей записи, но отфильтровать остальные.

Теперь вот проблема: я не могу объединить их вместе. Когда я пытаюсь, это нарушает поиск ввода. Кто-нибудь может сказать мне, почему?

1 Ответ

0 голосов
/ 06 ноября 2018

Похоже, проблема заключалась в том, что вы не можете фильтровать набор данных на стороне сервера, который хотите ввести и найти фильтр. Я не знаю, почему это будет проблемой, но это так. Установка false .serverfiltering решила проблему.

...