我想根据在下拉列表中输入的字符使用服务器端过滤。我正在使用以下代码:
@(Html.Kendo().DropDownListFor(m => m.VoucherReceiverCustomerId)
.Name("VoucherReceiverCustomerId")
.DataValueField("Value")
.DataTextField("Text")
.Filter(FilterType.StartsWith)
.AutoBind(false)
.MinLength(1)
.Delay(250)
.DataSource(ds => ds
.Read(read => read.Url(Url.Action("Customer_List", "Customer")))
.ServerFiltering(true)
)
.Events(evt => evt.Filtering("test").Open("test2"))
)
我希望该列表在用户输入至少一个字符后发送数据源请求。但是实际上,列表在单击下拉列表(为了输入字符)后立即发送请求。此外,事件Filtering
和Opening
均未发生火灾。将选项MinLength
的参数增加到> 1导致实际期望行为。
要解决此问题,我可以使用Filtering
事件,并在输入字符后手动请求数据源。但是,直到那时,我将如何阻止数据源阅读呢?通常设置选项AutoBind
就足够了,但在这种情况下还不够。
有趣的 - 设置选项 MinLength
to 0 实际行为就像人们期望的值 1 。
所以我现在有一个解决方案。但是,记录的问题仍然存在。