Nano Hash - криптовалюты, майнинг, программирование

Изменить выбранное значение раскрывающегося списка пользовательского интерфейса кендо

На мой взгляд, у меня есть раскрывающийся список пользовательского интерфейса кендо:

$("#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 здесь

19.04.2013
  • выбор по индексу работает нормально, но второе решение не работает. Я попробовал alert(dataItem.text) в функции перед оператором return, но он говорит undefined. 19.04.2013
  • Извините, я уже отредактировал ответ, там должно быть dataItem.symbol. См. JS Fiddle jsfiddle.net/OnaBai/mRmNJ. 19.04.2013
  • @anilca Если вы не знаете индекс, вы также можете выбрать по тексту (dataItem.Text) 15.10.2013
  • можно ли использовать angularjs для обновления выбранного элемента? 09.03.2015
  • У меня не работает, когда я пытался получить значение после выбора обоими методами, значение равно null 12.02.2016
  • Если в вашем KendoDropdown есть событие change, вы должны инициировать его вручную, вызвав dropdownlist.trigger("change"); после вызова select. 30.03.2017

  • 2

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

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

    Вот пример JSFiddle.

    16.02.2016
  • Я получаю Uncaught TypeError: Невозможно прочитать значение свойства неопределенной ошибки в моем проекте 16.03.2018
  • @ÖmürBilgili Вам, вероятно, нужно сначала проверить неопределенность: var inst = $("#Instrument").data('kendoDropDownList'); if (inst) { inst.value("A value"); } 04.06.2019

  • 3

    Поскольку это один из самых популярных результатов поиска по вопросам, связанным с этим, я подумал, что стоит упомянуть, как вы можете заставить это работать с 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";
    });
    
    06.11.2013

    4

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

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

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


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

    27.05.2016
  • Я сделал пример, и он сработал: jsfiddle.net/gangwu6/vjc39eLL/2 я пробовал оба .search('A value') и .value(A value) оба работали, и я не видел никаких различий. 04.08.2016
  • Я не могу заставить это работать, когда в моих значениях ddl есть запятая. Например, если в раскрывающемся списке есть Horseface, USA, и я ищу USA, ничего не найдено. 15.11.2016
  • @redwards510 Сейчас у меня нет активного проекта по кендо, но я iirc у вас должно быть точное совпадение для search. Плохо названная функция, я согласен. В вашем случае вам нужно будет написать свою собственную процедуру поиска, используя необработанный data, найти точное совпадение [опять же, с помощью вашей собственной процедуры поиска], а затем выбрать-через-search-функцию точное совпадение, которое вы нашли. Звучит неплохо? 15.11.2016
  • Да, не столь очевидный поиск работает, спасибо. [И зачем мне индекс, как описано ранее на этой странице. Я не реализовывал кендо, просто использовал виджеты...] 05.08.2017

  • 5

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

    dropdownlist.select(1);
    
    03.09.2015
  • это не работает должным образом с кендо. Он не будет запускать события и, следовательно, не будет обновлять отображение. 16.10.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..