我如何 select kendoDropDownList 的长度
How do I select the length of a kendoDropDownList
我有 2 个 kendo 下拉状态和子状态。 SubStatus 根据为 Status 选择的内容进行填充。我想添加这样的功能,以防 SubStatus 数据源 returns 只有 1 个 subStatus,默认情况下应该选择该子状态。无论 SubStatus 下拉列表中有多少 subStatuses,当前功能都会选择一个空白。
我打算通过在更改事件中添加一个名为 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 value as 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);
}
}
我有 2 个 kendo 下拉状态和子状态。 SubStatus 根据为 Status 选择的内容进行填充。我想添加这样的功能,以防 SubStatus 数据源 returns 只有 1 个 subStatus,默认情况下应该选择该子状态。无论 SubStatus 下拉列表中有多少 subStatuses,当前功能都会选择一个空白。 我打算通过在更改事件中添加一个名为 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 value as 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);
}
}