我尝试了以下设置组合:将服务器过滤设置为false:这允许在文本框中进行过滤(设置为filtertype:contains),但会中断级联。如果我将其设置为true,则文本框不会过滤下拉菜单的内容。我如何才能同时工作?
这是我们的模板(与编辑器一起显示)
@(Html.Kendo().DropDownList()
.Name(ViewData.TemplateInfo.HtmlFieldPrefix)
.DataTextField("Name")
.DataValueField("ID")
.ValuePrimitive(true)
.AutoBind(false)
.DataSource(source =>
{
source.Read(read =>
{
read.Action(action, "Support", routeValues)
.Data(filterFunction); // using @<text></text> so the string is included without being quoted
})
.ServerFiltering(true);
})
.OptionLabel(OptionLabelText)
.Value(Model.ToString())
.ValueTemplate("#= data.Name # ") //style of selected
.Template("#= data.Name # ") //style within dropdown
.CascadeFrom(cascadeFrom)
.HtmlAttributes(HtmlAttributes)
.Events(e =>
{
e.Select("onSelect");
})
它从编辑器中设置的viewData变量中获取诸如层叠式之类的参数,如下所示:
<div class="popup-editor-label">
@Html.LabelFor(model => model.AuthorityID)
</div>
<div class="popup-editor-field">
@Html.EditorFor(model => model.AuthorityID, new { Table = "GetAuthorities", filter = "filterAuthorityID", OptionLabelText = "(SELF)" })
</div>
相当标准的东西。如果没有传入,大多数都会设置为大括号,这样我们就可以通过这种方式为每个下拉菜单使用一个模板。
重复问题:为了使级联和过滤同时起作用,我必须与模板做些什么??