设置组合框的值时遇到了很多麻烦。问题是我有多个组合框,每个组合框都依赖于组合框中先前选择的值。所有值都存储在数据库中。当我运行ajax请求获取值并设置组合框值时,每次刷新页面时,组合框上的文本都是INCORRECT。每次加载页面时,即使没有任何更改,组合框上也会显示不同的文本。这与我设置值的方式有关吗?或者是否应该有一个特定的订单,考虑到每个都取决于以前的价值?有人可以帮忙吗???
E.g。 运动(从第一个组合框中选择), 足球(从第二个组合框中选择), 大卫贝克汉姆(从第3组合框中选出)
选择所有这些数据并将其保存到数据库中。在文档就绪时,我调用ajax请求来获取此数据并设置组合框值,但是,未显示保存的值并显示与数据源不同的值或根本不显示任何值。每次加载页面时,即使正确的值来自数据库,它也会显示其他内容。
答案 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>
这里,我已经硬编码了要在组合框中设置的值。您可以从数据库中提取数据并在此处设置。 保存组合框的值字段并使用它来显示数据是很好的。
希望这有帮助。