Подтвердить что ты не робот

Изменить выбранное значение выпадающего списка kendo ui

У меня есть kendo ui dropdownlist на мой взгляд:

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

Как изменить выбранное значение с помощью jQuery? Я пробовал:

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

Но он не работает должным образом.

4b9b3361

Ответ 1

Вы должны использовать метод Kendo UI DropDownList select (документация в здесь).

В основном вы должны:

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

Если вы знаете индекс, который вы можете использовать:

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

Если нет, используйте:

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

Пример JSFiddle здесь

Ответ 2

Самый простой способ сделать это:

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

Вот пример JSFiddle.

Ответ 3

Кажется, что более простой способ, по крайней мере, в Kendo UI v2015.2.624:

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

Если в раскрывающемся списке нет совпадения, Kendo, похоже, установит выпадающее меню на невыделенное значение, что имеет смысл.


Я не мог получить @Gang answer для работы, но если вы поменяете его value на search, как указано выше, мы золотые.

Ответ 4

Поскольку это один из лучших результатов поиска по связанным с этим вопросам, я подумал, что стоит упомянуть, как вы можете сделать эту работу с Kendo(). DropDownListFor() также.

Все то же самое, что и с сообщением OnaBai, за исключением того, как вы выбираете элемент на основе его текста и вашего селектора.

Чтобы сделать это, вы замените dataItem.symbol для dataItem. [DataTextFieldName]. Какое бы поле модели вы не использовали .DataTextField() - это то, с чем вы будете сравнивать.

@(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

Можно "изначально" выбрать по значению:

dropdownlist.select(1);