javascript - 使用 Kendo MVVM Dropdownlist 时如何强制选择第一项

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

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,并且它绑定(bind)了远程数据源。

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

我尝试直接使用上面的代码来执行此操作,该代码将 dataBound 事件绑定(bind)到小部件,并在触发时选择第一个项目。回调方法已被正确调用,但小部件从未选择第一个选项,而是继续选择第一个默认的“空”选项。

我做错了什么,该如何解决?如有任何建议,我们将不胜感激!

最佳答案

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

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

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

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

关于javascript - 使用 Kendo MVVM Dropdownlist 时如何强制选择第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37291655/

相关文章:

javascript - 在谷歌地图中仅显示特定国家(地区)

javascript - 如何将变量从模板工具包文件传递到 javascript 文件?

asp.net-mvc - ASP.NET MVC - 1 个 ActionResult 上的 ActionName 属性重复

c# - 如何在 c# windows phone 8.1 应用程序中写入 excel 文件?

c# - 如何在 C# 代码中使用 MVC 3 @Html.ActionLink

asp.net-mvc - 为什么我收到 IdentityRole 错误?

javascript - 过滤数据数组多个值javascript

javascript - 如何从字符串获取 url - jQuery 或 Javascript

c# - 复选框在 asp.net 和 HTML 混合页面中不起作用

c# - 单击多个文本框的事件