2014-09-05 151 views
1

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

E.g. 体育(从第1组合框中选择), 足球(从第二个组合框中选择), 贝克汉姆(从第3组合框中选择)

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

回答

2

要有三个相关的组合框,最好使用kendo组合框的“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