如何仅使用javascript清除/重置Kendo DropDownList?

Jos*_*osh 5 javascript kendo-ui kendo-asp.net-mvc

我有一个包含3个选项的Kendo DropDownList(name = Function).当选择一个选项时,它会触发ajax调用以获取数据以填充不同的DropDownList(name = Parents).这符合预期.但是,如果用户然后将原始DropDownList"Function"更改回另一个选项,我需要清除/重置(删除所有选项)并禁用"Parents"DropDownList.

function LoadKendoDropdownContents(dropdownBoxId, data) {
  var dropdownBox = $("#" + dropdownBoxId).data("kendoDropDownList");

  if (data === "" || data === null || $.isEmptyObject(data)) {
    var dataSource = [];
  }
  else {    
    var dataSource = data;
  }

  dropdownBox.setDataSource(dataSource);
}
Run Code Online (Sandbox Code Playgroud)

这真的是"var dataSource = []"给我带来了问题.就像"Parents"DropDownList在应用时不刷新/重新绑定.除了已选择的选项之外的所有选项都将被删除,但如何删除之前选择的选项?我希望它再次"空".

谢谢.

----我用的解决方案----

function LoadKendoDropdownContents(dropdownBoxId, data) {
  var dropdownBox = $("#" + dropdownBoxId).data("kendoDropDownList");

  if (data === "" || data === null || $.isEmptyObject(data)) {
    var dataSource = new kendo.data.DataSource({
      data: []
    });

    dropdownBox.text(" --- ");
    dropdownBox.value(-1);
  }
  else {
    var dataSource = new kendo.data.DataSource({
      data: data
    });

    dropdownBox.text("[Select]");
    dropdownBox.value(-1);
  }

  dropdownBox.setDataSource(dataSource);
}
Run Code Online (Sandbox Code Playgroud)

Cod*_*ike 7

使用级联下拉功能可能更容易.

当您更改dataSource时,它会删除下拉项,但您还需要清除所选文本并禁用该框,方法是:

dropdownBox.setDataSource(dataSource);
dropdownBox.text('');
dropdownBox.enable(false);
Run Code Online (Sandbox Code Playgroud)