【问题标题】: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,它会自动跟踪已选择的内容。

    【讨论】:

      猜你喜欢
      • 2016-02-23
      • 1970-01-01
      • 2014-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      • 2017-07-07
      相关资源
      最近更新 更多