2014-11-19 4 views
1

Я использую KendoUI ComboBox, и я хочу поместить элемент по умолчанию.Default select kendo combobox

В KendoUI ComboBox я не нашел способ поместить значение по умолчанию в текст, а не с индексом.

<script> 
    $("#combobox").kendoComboBox({ 
     dataSource: [ 
      { id: 1, name: "Apples" }, 
      { id: 2, name: "Oranges" } 
     ], 
     dataTextField: "name", 
     dataValueField: "id" 
    }); 

    var combobox = $("#combobox").data("kendoComboBox"); 

    combobox.select(combobox.ul.children().eq(0)); 
</script> 

Вот пример. Как преобразовать его в текст?

ответ

4

Как @SatyaRanjanSahoo говорит, что вы должны использовать valueно вы должны использовать значение id в противном случае вы будете принуждать значение, которое не может быть в DataSource.

Пример, если вы:

var combobox = $("#combobox").data("kendoComboBox"); 
// Set Value 
combobox.value("Apricot"); 
// Get Value 
alert("Value is " + combobox.value()); 

это покажет Apricot, но это не в DataSource тем временем, если вы:

var combobox = $("#combobox").data("kendoComboBox"); 
// Set Value 
combobox.value(2); 
// Get Value 
alert("Value is " + combobox.value()); 

Это покажет Oranges, что это правильное значение за товар, который id является 2.

Итак, если вы не уверены, что значение, установленное в value, является действительным dataTextField Я бы порекомендовал использовать dataValueField.

проверить в следующем фрагменте кода ...

$("#combobox").kendoComboBox({ 
 
    dataSource: [ 
 
    { id: 1, name: "Apples" }, 
 
    { id: 2, name: "Oranges" } 
 
    ], 
 
    dataTextField: "name", 
 
    dataValueField: "id" 
 
}); 
 

 
var combobox = $("#combobox").data("kendoComboBox"); 
 

 

 
// Set a valid value 
 
combobox.value("Oranges"); 
 
alert("Value for Oranges is: " + combobox.value()); 
 

 
// Set an invalid value 
 
combobox.value("Apricots"); 
 
alert("Value for Apricots is: " + combobox.value());
<link href="http://cdn.kendostatic.com/2014.2.1008/styles/kendo.common.min.css" rel="stylesheet" /> 
 
<link href="http://cdn.kendostatic.com/2014.2.1008/styles/kendo.default.min.css" rel="stylesheet" /> 
 
<script src="http://cdn.kendostatic.com/2014.2.1008/js/jquery.min.js"></script> 
 
<script src="http://cdn.kendostatic.com/2014.2.1008/js/kendo.all.min.js"></script> 
 

 
<input id="combobox"/>

+0

Ну объяснил @OnaBai. –

1

Чтобы поместить текст прямо в поле со списком:

var combobox = $("#combobox").data("kendoComboBox"); 
combobox.value("Oranges"); 

Но, используя тот же подход, анонимный текст может быть установлен в поле со списком, который не является частью источника данных. т.е.

combobox.value("XYZ"); 

Таким образом, его полезный индекс для установки значения в поле со списком.