如何选择kendoDropDownList

时间:2015-08-28 18:13:12

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

我有2个剑道下拉状态和SubStatus。根据为状态选择的内容填充SubStatus。我想添加功能,以防SubStatus数据源仅返回1个子状态时,默认情况下应选择该子状态。无论SubStatus下拉列表中有多少个子状态,当前功能都会选择一个空白。 我打算通过在change事件中添加一个名为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”)。数据( 'kendoDropDownList')。值(1)。有没有更好的方法?

我的问题: 出于某种原因, len 的价值与改变之前的价值相同。所以,让我们在pageload上说下拉列表中有1个子状态。当我更改有6个子状态的状态时,它会将 len的值显示为1.当我切换到只有2个子状态的状态时,它会显示 len的值为6.总是拿起以前的值。知道为什么会这样吗? 非常感谢你的帮助! :)

1 个答案:

答案 0 :(得分:2)

您可以在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