Изменить выбранное значение выпадающего списка kendo ui
У меня есть kendo ui dropdownlist на мой взгляд:
$("#Instrument").kendoDropDownList({
dataTextField: "symbol",
dataValueField: "symbol",
dataSource: data,
index: 0
});
Как изменить выбранное значение с помощью jQuery?
Я пробовал:
$("#Instrument").val(symbol);
Но он не работает должным образом.
Ответы
Ответ 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);