2014-09-05 3 views
1

У меня возникли проблемы с установкой значений моих комбинированных полей. Проблема в том, что у меня есть несколько комбинированных ящиков, каждый из которых зависит от предыдущего выбранного значения из комбинированного поля. Все значения хранятся в базе данных. Когда я запускаю запрос ajax для получения значений и устанавливаю значения combo-box, каждый раз, когда я обновляю свою страницу, текст в комбинированных ящиках INCORRECT. И каждый раз, когда я загружаю страницу, в комбинированном поле отображается другой текст, хотя ничего не изменилось. Имеет ли это что-то делать с тем, как я устанавливаю значения? Или должен быть определенный порядок, учитывая, что каждый из них зависит от предыдущего значения? Может кто-то помочь?Kendo Combobox - установить множество значений combobox из базы данных

E.g. Sports (выбранный из 1 комбо-бокса), Футбола (выбранный из 2 комбо-бокса), Дэвид Бекхэм (выбранный из 3-го комбо-бокса)

После того, как все эти данные выбран и сохранен в базу данных. В готовом документе я вызываю ajax-запрос для получения этих данных и устанавливаю значения combo-box, но либо сохраненные значения не отображаются, а другое значение из источника данных или вообще ничего не показывают. Каждый раз, когда страница загружается, она показывает что-то еще, даже правильные значения поступают из базы данных.

ответ

2

Чтобы иметь три зависимых комбинированных блока, лучше использовать свойство «cascadeFrom» комбо-поля kendo. Простого пример:

<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

Смежные вопросы