预过滤 telerik 类型和查找列表框的内容时出现问题

problem when pre-filtering the contents of a telerik type-and-find listbox

目标是能够将过滤后的数据集传递到我也可以键入并查找的列表视图。在我转换为键入并查找(也称为 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 字段是一个 hack javascript,它获取控件中内容的当前值。它被传递到控制器中,因为我们在数据库中有 "deactivated" 个项目,如果它在现有记录中,我们想显示当前的项目,但过滤掉其余的。

现在的问题是:我无法将它们组合在一起。当我尝试时,它打破了打字搜索。谁能告诉我为什么?

看来问题是您无法在服务器端过滤您想要键入并查找过滤器的数据集。我不知道为什么这会成为一个问题,但确实如此。将 .serverfiltering 设置为 false 解决了问题。