gpt4 book ai didi

javascript - 如何选择 kendoDropDownList 的长度

转载 作者:行者123 更新时间:2023-12-02 15:44:59 24 4
gpt4 key购买 nike

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

//不完整,需要帮助。

    };

我计划如何实现这一点:我打算通过上述语句检查下拉列表的长度来实现这一点。如果长度= 1,那么我应该这样做:$("#appointmentSubStatus").data('kendoDropDownList').value(1).还有更好的办法吗?

我的问题:由于某种原因,len 的值会恢复为更改之前的值。假设页面加载时下拉列表中有 1 个子状态。当我更改有 6 个子状态的状态时,它会将 len's 值显示为 1。当我切换到只有 2 个子状态的状态时,它会将 len's 值显示为6.总是拾取以前的值。知道为什么会发生这种情况吗?非常感谢您的帮助! :)

最佳答案

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

当新数据源绑定(bind)到下拉列表时会触发此事件。此时您可以检查数据的长度,然后设置值。

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com