Javascript 如何选择kendoDropDownList的长度
我有两个剑道下拉列表状态和子状态。根据为状态选择的内容填充子状态。我想添加一个功能,当SubStatus数据源仅返回1个子状态时,默认情况下应选择该子状态。无论子状态下拉列表中有多少子状态,当前功能都会选择空白。 我打算通过在change event中添加一个名为setDefaultSubStatus的函数来实现这一点。代码如下:Javascript 如何选择kendoDropDownList的长度,javascript,jquery,data-binding,kendo-ui,kendo-dropdown,Javascript,Jquery,Data Binding,Kendo Ui,Kendo Dropdown,我有两个剑道下拉列表状态和子状态。根据为状态选择的内容填充子状态。我想添加一个功能,当SubStatus数据源仅返回1个子状态时,默认情况下应选择该子状态。无论子状态下拉列表中有多少子状态,当前功能都会选择空白。 我打算通过在change event中添加一个名为setDefaultSubStatus的函数来实现这一点。代码如下: var Status = $("#Status").kendoDropDownList({ dataTextField: "DisplayValue"
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,那么我应该做如下操作:
$(“#任命子状态”).data('kendoDropDownList')。值(1)。还有更好的办法吗
我的问题:
由于某种原因,len的值与变化前一样。假设pageload的下拉列表中有1个子状态。当我改变有6个子状态的状态时,它会将len的值显示为1。当我切换到一个只有2个子状态的状态时,它会显示len的值为6。始终拾取上一个值。你知道为什么会这样吗?
非常感谢你的帮助!:) 您可以在“子状态”下拉列表中使用数据绑定事件: 当新数据源绑定到下拉列表时,会触发此事件。此时,您可以检查数据的长度,然后设置值
dataBound: function(e) {
if (e.sender.dataSource.data().length == 1){
var val = e.sender.dataSource.data()[0].Id;
e.sender.value(val);
}
}