it-swarm.com.de

Ändere den ausgewählten Wert der Dropdown-Liste von kendo ui

Ich habe eine kendo ui dropdownlist aus meiner Sicht:

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

Wie kann ich den ausgewählten Wert mit jQuery ändern? Ich habe es versucht:

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

Aber es funktioniert nicht wie erwartet.

41
anilca

Sie müssen die Kendo UI DropDownList select -Methode verwenden (Dokumentation in hier ).

Grundsätzlich sollten Sie:

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

Wenn Sie den Index kennen, können Sie Folgendes verwenden:

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

Wenn nicht, benutze:

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

JSFiddle-Beispiel hier

69
OnaBai

Der einfachste Weg dies zu tun ist:

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

Hier ist das JSFiddle-Beispiel .

28
Gang

Zumindest in Kendo UI v2015.2.624 scheint es einen einfacheren Weg zu geben:

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

Wenn die Dropdown-Liste keine Übereinstimmung enthält, scheint Kendo die Dropdown-Liste auf einen nicht ausgewählten Wert zu setzen, was sinnvoll ist.


Ich konnte @Gangs Antwort nicht zum Laufen bringen, aber wenn Sie wie oben sein value mit search tauschen, sind wir golden.

5
ruffin

Da dies eines der Top-Suchergebnisse für diesbezügliche Fragen ist, war es meiner Meinung nach erwähnenswert, wie Sie diese Funktion auch mit Kendo (). DropDownListFor () ausführen können.

Alles ist wie in OnaBais Beitrag, außer wie Sie das Element anhand seines Texts und Ihrer Auswahl auswählen.

Dazu würden Sie dataItem.symbol gegen dataItem. [DataTextFieldName] austauschen. Mit welchem ​​Modellfeld Sie auch immer .DataTextField () verglichen haben.

@(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";
});
5
user2958958

Es ist möglich, "nativ" nach Wert auszuwählen:

dropdownlist.select(1);
2
HSM