我有2个Kendo下拉菜单Status和SubStatus。 SubStatus将根据为Status选择的内容进行填充。我要添加功能,以防SubStatus数据源仅返回1个subStatus时,默认情况下应选择该子状态。无论SubStatus下拉列表中有多少subStatuse,当前功能都会选择一个空白。
我打算通过在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”)。data('kendoDropDownList')。value(1)。有什么更好的办法吗?
我的问题:
由于某种原因,len的值与更改前的值一样上升。因此,可以说,在页面加载中,下拉菜单中有1个子状态。当我更改状态时有6个子状态时,它将len的值显示为1。当我切换到只有2个子状态的状态时,它将显示len的值显示为6。始终选择前一个值。知道为什么会这样吗?
非常感谢您的帮助! :)
最佳答案
您可以在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
关于javascript - 如何选择kendoDropDownList的长度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32277354/