【问题标题】:How to force selecting first item when using Kendo MVVM Dropdownlist使用 Kendo MVVM Dropdownlist 时如何强制选择第一项
【发布时间】:2016-09-14 11:17:28
【问题描述】:
function GenericSelectFirst(e){
  // This function is called without any errors, I have verified it
  e.sender.select(0);
}

<select class="full-width"

        name="..."
        data-bind="source: ..., value: ..., visible: ..., events:{dataBound: Function.GenericSelectFirst}"
        data-role="dropdownlist"
        data-value-field="..."
        data-text-field="..."
        data-value-primitive="true"
        data-auto-bind="true"
        required="required"
>
</select>

我不认为实现这样一个常见的简单场景有那么难,但是我有一个使用 MVVM 样式初始化的 Kendo DropDownList,它正在绑定一个远程数据源。

我想要实现的是,一旦远程数据源准备好并绑定到小部件,默认选择第一个选项(当然第一项的值应该绑定到视图模型)

我尝试直接用上面的代码来做,它将一个 dataBound 事件绑定到小部件,并在它触发时选择第一个项目。回调方法已被正确调用,但小部件从不选择第一个选项,而是继续选择第一个默认的“空”选项。

我做错了什么,我该如何解决?任何建议表示赞赏!

【问题讨论】:

    标签: javascript c# asp.net-mvc mvvm kendo-asp.net-mvc


    【解决方案1】:

    您使用的是哪个剑道版本?如果是最新的,请记住,因为 V. Q1 2015 ,为了更好地匹配 Html Select 行为并解决一些与 MVVM 值绑定相关的问题,下拉列表现在允许清除其值(取消选择项)。这将引入以下重大更改:

    小部件不会选择第一个项目,当它的选择索引为 -1 时 当数据源中不存在所选值时,小部件不会选择第一项。

    长话短说,如果有人想获得以前的行为,那么他/她将需要手动选择第一项:

      dataBound: function() {
        if (this.select() === -1) { //check whether any item is selected
          this.select(0);
          this.trigger("change");
        }
      }
    

    【讨论】:

      猜你喜欢
      • 2016-11-12
      • 1970-01-01
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-17
      相关资源
      最近更新 更多