默认选择kendo组合框

时间:2014-11-19 09:12:30

标签: javascript kendo-ui kendo-combobox

我使用KendoUI 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>

这是一个例子。如何将其转换为文本?

2 个答案:

答案 0 :(得分: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 id2的商品的正确值。

因此,除非您确定value来电中设置的值是有效dataTextField,否则我建议您使用dataValueField

请在以下代码段中查看此内容...

&#13;
&#13;
$("#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());
&#13;
<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"/>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

将文字直接放入组合框:

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

但是,使用相同的方法可以将匿名文本设置到组合框中,该组合框不是数据源的一部分。即

  combobox.value("XYZ");

因此,使用index将值设置为组合框很好。