【问题标题】:Kendo UI: Combo box shows value instead of TextKendo UI:组合框显示值而不是文本
【发布时间】:2017-03-18 05:06:29
【问题描述】:

我正在使用带有 AngularJS 的 Kendo UI。我无法解决问题。

如果模型设置为组合框绑定到的数据源中不存在的 ID,则该值将按原样显示在下拉列表中。即,如果我将模型设置为 4,并且数据源中没有 ID 为 4 的数据项,则组合框按原样显示 4。我想用空字符串替换它。 如何将其更改为显示空文本框?

sample

附言。问题不仅限于 Angular。 Kendo 自己的 MVVM 绑定也有同样的问题。

【问题讨论】:

    标签: angularjs kendo-ui kendo-combobox


    【解决方案1】:

    好吧,因为它不是下拉菜单而是组合框,所以你可以在里面写下每一个文本,恐怕你必须自己检查。

    Value 属性只是设置一个值,如果是组合框,如果值与数据源中的项目不匹配,那么它只是将值设置到输入框。

    为了进行检查,我将使用dataBound 事件,该事件在组件创建后启动一次。因为它是在创建组件后启动的,所以您可以轻松地将所选值与数据源中的值进行比较。

    这里是小demo。希望能帮助到你。

    【讨论】:

      【解决方案2】:

      可能会迟到,但接受的答案对我不起作用。

      如果有人使用 SQL Server 将其值存储在具有外键的父表和存储所有组合框值的子表中。然后我所做的是返回所选值的 ID 和文本(使用左外连接)。

      编辑:我刚刚注意到这是有角度的,下面是 kendo-ui Jquery


      SQL

      SELECT  col1,
              col2,
              col3,
              ChildID,                -- ID stored in parent table
              childTable.ChildDesc    -- Getting child text 
      FROM    parentTable
      LEFT OUTER JOIN childTable ON childTable.ChildID = parentTable.ChildID
      

      JS

      $("#id").kendoComboBox({
          dataTextField: "Description",
          dataValueField: "ID",
          filter: "contains",
          minLength: 1,
          filtering: onFilterCostCentre,
          value: item.ChildID,
          text: item.ChildDesc
      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-21
        相关资源
        最近更新 更多