1

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

例如,体育(从第一个组合框中选择)、足球(从第二个组合框中选择)、大卫·贝克汉姆(从第三个组合框中选择)

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

4

1 回答 1

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>

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

希望这可以帮助。

参考链接

于 2014-09-09T11:31:19.900 回答