【问题标题】:Kendo 3 Tier Cascading DropDownList剑道 3 层级联下拉列表
【发布时间】:2013-09-19 11:03:02
【问题描述】:

我正在尝试做一个简单的级联下拉列表,但由于某种原因,3 个下拉列表没有正确级联。正在从上一个下拉列表中级联 engineType 不考虑品牌。

例如选择make->Audi,然后选择EngineType->Deisel。 3 下拉列表应显示“A4”。但它显示了所有 Deisel 引擎。

任何帮助都会很好。

$(document).ready(function () {

  var makes = $("#makes").kendoDropDownList({
        autoBind: true,
        optionLabel: "Select",
        dataTextField: "make",
        dataValueField: "make",
        dataSource: [
            { make: "Audi"},
            { make: "BMW" },
            { make: "Saab"}
        ]
  }).data("kendoDropDownList");

  var engineType = $("#engineTypes").kendoDropDownList({
        autoBind: false,
        cascadeFrom: "makes",
        optionLabel: "Select",
        dataTextField: "engineType",
        dataValueField: "engineType",
        dataSource: [
            { make: "Audi", engineType: "Deisel"},
            { make: "Audi", engineType: "Petrol"},
            { make: "BMW", engineType: "Deisel"},
            { make: "Saab", engineType: "Deisel"}
        ]
  }).data("kendoDropDownList");

  var models = $("#models").kendoDropDownList({
        autoBind: false,
        cascadeFrom: "engineTypes",
        optionLabel: "Select",
        dataTextField: "chose",
        dataValueField: "chose",
        dataSource: [
          { make: "Audi", engineType: "Deisel", chose: "A4"},
            { make: "Audi", engineType: "Petrol", chose: "A5"},
            { make: "BMW", engineType: "Deisel", chose: "3 Series"},
            { make: "Saab", engineType: "Deisel", chose: "900"}
        ]
  }).data("kendoDropDownList");

});

【问题讨论】:

    标签: kendo-ui cascadingdropdown kendo-combobox


    【解决方案1】:

    问题是因为第二个下拉列表(引擎类型)包含重复值。您需要为每个项目赋予一些独特的价值。像这样的:

     var engineType = $("#engineTypes").kendoDropDownList({
            autoBind: false,
            cascadeFrom: "makes",
            optionLabel: "Select",
            dataTextField: "engineType",
            dataValueField: "value",
            dataSource: [
              { make: "Audi", engineType: "Deisel", value: 1 },
              { make: "Audi", engineType: "Petrol", value: 2 },
              { make: "BMW", engineType: "Deisel", value: 3 },
              { make: "Saab", engineType: "Deisel", value: 4}
            ]
      }).data("kendoDropDownList");
    
      var models = $("#models").kendoDropDownList({
            autoBind: false,
            cascadeFrom: "engineTypes",
            optionLabel: "Select",
            dataTextField: "chose",
            dataValueField: "chose",
            dataSource: [
              { make: "Audi", value: 1, chose: "A4"},
              { make: "Audi", value: 2, chose: "A5"},
              { make: "BMW", value: 3, chose: "3 Series"},
              { make: "Saab", value: 4, chose: "900"}
            ]
      }).data("kendoDropDownList");
    

    这是一个现场演示:http://jsbin.com/izahAWi/1/edit

    【讨论】:

    • 感谢您的救命稻草。一直让我发疯。我以上面的数据为例,我实际上有一个 mySQL 表,它有一个汽车矩阵,我想从中进行级联下拉菜单。这是否可以从一个具有字段 make、engine、model、variant 的 json 数据源中实现。很想得到你的帮助。总而言之,我想要一个数据源矩阵中的 4 个级联 dropdownlst 品牌、引擎、模型、变体。样本数据 - link
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-17
    • 1970-01-01
    相关资源
    最近更新 更多