Kendo Combobox - 设置多个组合框值,全部来自数据库

时间:2014-09-05 14:29:22

标签: javascript kendo-datasource kendo-combobox

设置组合框的值时遇到了很多麻烦。问题是我有多个组合框,每个组合框都依赖于组合框中先前选择的值。所有值都存储在数据库中。当我运行ajax请求获取值并设置组合框值时,每次刷新页面时,组合框上的文本都是INCORRECT。每次加载页面时,即使没有任何更改,组合框上也会显示不同的文本。这与我设置值的方式有关吗?或者是否应该有一个特定的订单,考虑到每个都取决于以前的价值?有人可以帮忙吗???

E.g。     运动(从第一个组合框中选择),     足球(从第二个组合框中选择),     大卫贝克汉姆(从第3组合框中选出)

选择所有这些数据并将其保存到数据库中。在文档就绪时,我调用ajax请求来获取此数据并设置组合框值,但是,未显示保存的值并显示与数据源不同的值或根本不显示任何值。每次加载页面时,即使正确的值来自数据库,它也会显示其他内容。

1 个答案:

答案 0 :(得分:2)

要拥有三个依赖的组合框,最好使用" cascadeFrom"剑道组合框的财产。 一个简单的例子:

 <div>
     <input id="category" />
     <input id="sports" />
     <input id="player" />
 </div>

 <script>
  $("#category").kendoComboBox({
    dataTextField: "categoryName",
    dataValueField: "categoryId",
    dataSource: [
        { categoryName: "Sports", categoryId: 1 },
        { categoryName: "Music", categoryId: 2 }
    ]
   });

  $("#sports").kendoComboBox({
    cascadeFrom: "category",
    dataTextField: "sportsName",
    dataValueField: "sportsId",
    dataSource: [
        { sportsName: "Football", sportsId: 1, categoryId: 1 },
        { sportsName: "Cricket", sportsId: 2, categoryId: 1 },
        { sportsName: "Pop", sportsId: 3, categoryId: 2 },
        { sportsName: "Rock", sportsId: 4, categoryId: 2 }
    ]
  });

  $("#player").kendoComboBox({
    cascadeFrom: "sports",
    dataTextField: "playerName",
    dataValueField: "playerId",
    dataSource: [
        { playerName: "David Beckham", playerId: 1, sportsId: 1 },
        { playerName: "Leonel Messi", playerId: 2, sportsId: 1 },
        { playerName: "Xavi", playerId: 3, sportsId: 1 },
        { playerName: "Raina", playerId: 4, sportsId: 2 },
        { playerName: "Gambhir", playerId: 4, sportsId: 2 },
        { playerName: "YXZ", playerId: 4, sportsId: 3 },
        { playerName: "ABC", playerId: 4, sportsId: 3 }
    ]
  });

   // To set value in combo-box
   $("#category").data('kendoComboBox').value(1);
   $("#sports").data('kendoComboBox').value(1);
   $("#player").data('kendoComboBox').value(2);

</script>

这里,我已经硬编码了要在组合框中设置的值。您可以从数据库中提取数据并在此处设置。 保存组合框的值字段并使用它来显示数据是很好的。

希望这有帮助。

Reference Link