Modifier la valeur sélectionnée de kendo ui dropdownlist

j'ai un Kendo ui dropdownlist à mon avis:

$("#Instrument").kendoDropDownList({
    dataTextField: "symbol",
    dataValueField: "symbol",
    dataSource: data,
    index: 0
});

Comment puis-je changer la valeur sélectionnée en utilisant jQuery? J'ai essayé:

$("#Instrument").val(symbol);

mais ça ne marche pas comme prévu.

37
demandé sur OnaBai 2013-04-19 18:12:54

5 réponses

vous devez utiliser Kendo UI DropDownList select méthode (documentation ici).

Fondamentalement, vous devez:

// get a reference to the dropdown list
var dropdownlist = $("#Instrument").data("kendoDropDownList");

Si vous connaissez l'index, vous pouvez utiliser:

// selects by index
dropdownlist.select(1);

Si non, utilisez:

// selects item if its text is equal to "test" using predicate function
dropdownlist.select(function(dataItem) {
    return dataItem.symbol === "test";
});

JSFiddle exemple ici

63
répondu OnaBai 2014-01-29 22:54:18

la façon la plus simple de faire ceci est:

$("#Instrument").data('kendoDropDownList').value("A value");

Ici JSFiddle exemple.

21
répondu Gang 2016-08-04 15:03:12

il semble Qu'il y ait un moyen plus facile, au moins dans Kendo UI v2015.2.624:

$('#myDropDownSelector').data('kendoDropDownList').search('Text value to find');

S'il n'y a pas de correspondance dans le dropdown, Kendo semble fixer le dropdown à une valeur non sélectionnée, ce qui est logique.


je ne pouvais pas obtenir @Gang réponse fonctionne, mais si vous échanger son valuesearch, comme ci-dessus, nous sommes d'or.

4
répondu ruffin 2017-05-23 12:18:14

Puisqu'il s'agit de l'un des résultats de recherche les plus élevés pour les questions liées à ce que j'ai senti qu'il valait la peine de mentionner comment vous pouvez faire ce travail avec Kendo().DropDownListFor ().

tout est le même qu'avec le post D'OnaBai sauf pour la façon dont vous sélectionnez l'article à partir de son texte et de votre sélecteur.

pour ce faire, vous échangeriez les données.symbole pour dataItem.[DataTextFieldName]. Quel que soit le modèle que vous utilisiez .DataTextField () est ce que vous allez comparer contre.

@(Html.Kendo().DropDownListFor(model => model.Status.StatusId)
    .Name("Status.StatusId")
    .DataTextField("StatusName")
    .DataValueField("StatusId")
    .BindTo(...)
)

//So that your ViewModel gets bound properly on the post, naming is a bit 
//different and as such you need to replace the periods with underscores
var ddl = $('#Status_StatusId').data('kendoDropDownList');    

ddl.select(function(dataItem) {
    return dataItem.StatusName === "Active";
});
3
répondu user2958958 2015-04-21 17:01:25

il est possible de sélectionner "nativement" en fonction de la valeur:

dropdownlist.select(1);
1
répondu HSM 2016-12-13 16:09:31