javascript - 如何选择 kendoDropDownList 的长度

标签 javascript jquery data-binding kendo-ui kendo-dropdown

我有 2 个剑道下拉菜单“状态”和“子状态”。子状态根据为状态选择的内容进行填充。我想添加这样的功能:当 SubStatus 数据源仅返回 1 个子状态时,默认情况下应选择该子状态。无论子状态下拉列表中有多少个子状态,当前功能都会选择空白。 我打算通过在更改事件中添加一个名为 setDefaultSubStatus 的函数来实现这一点。下面是代码:

var Status = $("#Status").kendoDropDownList({
        dataTextField: "DisplayValue",
        dataValueField: "Id",
        valuePrimitive: true,
        optionLabel: " ",
        autoBind: false,
        dataSource: intakeView.viewModel.StatusDataSource,
        change: function (e) {

            intakeView.viewModel.SubStatusesDataSource.read();
            setDefaultSubStatus();

        }

    });


function setDefaultSubStatus() {
        var dropDown = $("#appointmentSubStatus").data("kendoDropDownList");
        var len = dropDown.dataSource.data().length;
        alert(len);

//不完整,需要帮助。

    };

我计划如何实现这一点: 我打算通过上述语句检查下拉列表的长度来实现这一点。如果长度= 1,那么我应该这样做: $("#appointmentSubStatus").data('kendoDropDownList').value(1).还有更好的办法吗?

我的问题: 由于某种原因,len 的值会恢复为更改之前的值。假设页面加载时下拉列表中有 1 个子状态。当我更改有 6 个子状态的状态时,它会将 len's 值显示为 1。当我切换到只有 2 个子状态的状态时,它会将 len's 值显示为6.总是拾取以前的值。知道为什么会发生这种情况吗? 非常感谢您的帮助! :)

最佳答案

您可以在 SubStatus 下拉列表中使用 dataBound 事件:http://docs.telerik.com/KENDO-UI/api/javascript/ui/dropdownlist#events-dataBound

当新数据源绑定(bind)到下拉列表时会触发此事件。此时您可以检查数据的长度,然后设置值。

dataBound: function(e) {
  if (e.sender.dataSource.data().length == 1){
    var val = e.sender.dataSource.data()[0].Id;
    e.sender.value(val);
  }
}

DEMO

关于javascript - 如何选择 kendoDropDownList 的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32277354/

相关文章:

JavaScript 速记三元运算符

javascript - Google Plus 或 Facebook Style Image Popup Viewer?

javascript - 包括 javascript 文件和 ajax 响应

javascript - 当它已经旋转时自定义旋转一个div

jQuery UI 复选框按钮全选问题

wpf - 在 WPF ListView 中选择项目时,更新其他控件以查看详细信息

data-binding - 绑定(bind)到动态生成的组件/元素的可绑定(bind)属性

javascript - 谁能告诉我为什么我的导航不起作用?

javascript - 了解 HTML anchor 标记

.net - 如何覆盖 WinForms 中数据绑定(bind)控件上的错误消息?