目标是能够将经过过滤的数据集传递到我也可以键入并查找的列表视图。在使我转换为类型并找到(也称为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,可获取控件中内容的当前值。它被传递到控制器中,因为我们已经“停用”了数据库中的项,并且如果当前项在现有记录中,我们希望显示它,但要过滤掉其余项。
现在是问题所在:我无法将它们结合在一起。当我尝试时,它会打断打字搜索。谁能告诉我为什么?
答案 0 :(得分:0)
问题似乎在于您无法在服务器端过滤要键入并查找过滤器的数据集。我不知道为什么这会是一个问题,但是确实如此。将.serverfiltering设置为false可解决此问题。