【问题标题】:Using Kendo UI AutoComplete to throw error使用 Kendo UI AutoComplete 抛出错误
【发布时间】:2013-11-25 10:52:07
【问题描述】:
嗨,我正在为我的 asp.net mvc 项目使用 kedo ui,我能够使用自动完成功能,并且我从数据库中获取产品,这工作正常,但我不想选择现有产品,如果已经产品我该怎么办在文本框中输入它应该会抛出错误
<%= Html.Kendo().AutoComplete()
.Name("produciits")
.DataTextField("ProductName")
.Filter("contains")
.DataSource(source => {
source.Read(read =>
{
read.Action("GetProducts", "Home");
})
.ServerFiltering(false);
})
%>
【问题讨论】:
标签:
c#
asp.net
asp.net-mvc
autocomplete
kendo-ui
【解决方案1】:
如果我正确理解您的问题,您希望避免使用某些分隔符在自动完成文本框中出现重复项目。如果是这种情况,您必须按照 sn-p 在自动完成的 onChange 事件中连接一些手动工作,如果不是,请澄清一下。
<%= Html.Kendo().AutoComplete()
.Name("produciits")
.Separator(",")
.DataTextField("ProductName")
.Filter("contains")
.DataSource(source => {
source.Read(read =>
{
read.Action("GetProducts", "Home");
})
.ServerFiltering(false);
})
.Events(e => e.Select("onChange"))
%>
<script>
function onChange(e) {
var text = e.item.text(),
valArray = this.value().split(",");
if ($.inArray(text, valArray) !== -1) {
alert(text + " already selected");
// Retaining previous values
e.preventDefault();
valArray.pop();
this.value(valArray.join(",") + ",");
}
}
</script>
如果您只想坚持使用数据源项,我建议您使用multiselect,它会自动跟踪已选择的内容。