繁体   English   中英

使用Kendo MVVM下拉列表时如何强制选择第一项

[英]How to force selecting first item when using Kendo MVVM Dropdownlist

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事件绑定到窗口小部件,并在触发时选择第一个项目。 调用回调方法时没有错误,但小部件从不选择第一个选项,而是继续选择第一个默认的“空”选项。

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

您正在使用Wich Kendo版本吗? 如果是最新版本,请记住自2015年第1 季度以来,为了更好地匹配Html Select行为并解决与MVVM值绑定相关的一些问题,下拉列表现在允许清除其值(取消选择所选项目)。 这将引入以下重大变化:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM