Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何选择kendoDropDownList的长度_Javascript_Jquery_Data Binding_Kendo Ui_Kendo Dropdown - Fatal编程技术网

Javascript 如何选择kendoDropDownList的长度

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"

我有两个剑道下拉列表状态和子状态。根据为状态选择的内容填充子状态。我想添加一个功能,当SubStatus数据源仅返回1个子状态时,默认情况下应选择该子状态。无论子状态下拉列表中有多少子状态,当前功能都会选择空白。 我打算通过在change event中添加一个名为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,那么我应该做如下操作: $(“#任命子状态”).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);
  }
}