【问题标题】:How do I select the length of a kendoDropDownList如何选择 kendoDropDownList 的长度
【发布时间】:2015-11-23 11:41:53
【问题描述】:

我有 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);

//此处不完整,需要帮助。

    };

我打算如何实施: 我打算通过上述语句检查下拉列表的长度来实现这一点。如果 length = 1 ,那么我应该执行以下操作: $("#appointmentSubStatus").data('kendoDropDownList').value(1)。有没有更好的方法?

我的问题: 出于某种原因,len 的值会与更改前的值一样。所以让我们说在页面加载时下拉菜单中有 1 个子状态。当我更改有 6 个子状态的状态时,它会将 len's 值显示为 1。当我切换到只有 2 个子状态的状态时,它会将 len's 值显示为6.总是拾取先前的值。知道为什么会发生这种情况吗? 非常感谢您的帮助! :)

【问题讨论】:

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


    【解决方案1】:

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

    当新的数据源绑定到下拉列表时触发此事件。到时候可以查看数据的长度,然后设置值。

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

    DEMO

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-05
      • 2022-08-18
      • 2013-10-18
      • 2021-12-29
      • 1970-01-01
      • 2012-08-22
      • 2021-05-11
      • 1970-01-01
      相关资源
      最近更新 更多