当前位置: 首页 > 知识库问答 >
问题:

如何清除/重置剑道DropDownList与只有javascript?

林俊英
2023-03-14

我有一个剑道DropDownList(名称=函数),其中包含3个选项。当选择一个选项时,它会触发一个ajax调用,以获取数据来填充不同的DropDownList(name=父母)。这正如预期的那样工作。但是,如果用户随后将原始DropDownList功能更改回不同的选择,我需要清除/重置(删除所有选项)并禁用父母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);
}

真正给我带来问题的是“var dataSource=[]”。就像“家长”下拉列表在应用时没有刷新/重新绑定一样。除所选选项之外的所有选项都将被删除,但如何删除先前所选的选项?我希望它再次“空”。

非常感谢。

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

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);
}

共有2个答案

能可人
2023-03-14

如果已为“父级”和“子级”下拉列表定义了数据源,则可以在子级中使用cascadeFrom(“父级”)方法,并设置一个可以标识为null或clear的值。

严昀
2023-03-14

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

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

dropdownBox.setDataSource(dataSource);
dropdownBox.text('');
dropdownBox.enable(false);
 类似资料:
  • 我是剑道MVC的新手,所以请耐心等待。我有以下代码来创建一个剑道MVC DropDownList For: "原始"ViewModel的Kind"属性对应于从DataSource-Read终结点接收的数据的"Code"属性。 请指教。 谢谢你,屋大维

  • 我有剑道下拉列表,我想选择下拉列表的选择值。我得到了选定项目的文本,但不是应该是ID的值。 绑定数据与Dropdown列表剑道 使用剑道下拉列表绑定选择函数。

  • 我试图使用一对剑道下拉列表来过滤AngularJS中的数据集。其中一个数据源使用静态可观察数组按状态筛选数据集;另一个数据源是数据集的“区域ID”列的一组不同值,也存储为可观察数组。当状态下拉列表更改时,区域下拉列表应该从新过滤的数据中重新加载区域列表。这是可行的,但是选定的值最终会被忽略,即使应该代表选定值的模型仍然具有正确的值,并且数据仍然被相同的值正确过滤。打开下拉列表,然后单击它,使其按应

  • 问题内容: 我已经尝试过了,但它不起作用。那么如何通过jQuery重置表单? 问题答案: 是DOM元素方法(jQuery对象上没有),因此您需要: 还是没有jQuery:

  • 我们可以通过以下查询删除所有节点和关系。 但是新创建的节点将内部id作为({最后一个节点内部id}+1)。它不会重置为零。 我们如何重置neo4j数据库,比如新创建的节点将获得id为0? 从2.3开始,我们可以删除所有有关系的节点,

  • 我使用剑道网格和编辑器模板来显示我的数据。在编辑器中,我给了剑道下拉列表的DataValueField()id和DataTextField()名称。在更改事件中,我无法获取DataValueField()。请参阅下面的代码 这是我的编辑模板。chtml 这是我的更改功能 目前我的名字是ie;DataTextField()值。相反,我需要DataValueField()。提前感谢您的建议!