Как взять выделенный текст в переменной множественного выбора Кендо?

Я преобразовал выпадающий список кендо в множественный выбор кендо.

Выпадающий список содержит 2 пункта:

  1. Система управления данными D-UDMS-TMA
  2. Система управления U-TDMS-SMA
$("#btnSendFlow").click(function () {

            debugger;

            var FlowData_array = [];

            //var ROLECODE = $("#DDRolecode").val().trim();---For dropdownlist output: "D"
            var ROLECODE = $("#DDRolecode").data("kendoMultiSelect").value();//added by chetan for multiselect output: "D" "U"

            // var MPID = $("#DDRolecode").data("kendoDropDownList").text().split('-');---for dropdownlist output: (3)["D","UDMS","TMA Data Mgmt System"]
            var MPID = $("#DDRolecode").data("kendoMultiSelect").value().split('-');//added for multiselect(How to do For multiple selected items?)-->
            output should be like:
            (3)["D","UDMS","TMA Data Mgmt System"]
            (3)["U","TDMS","SMA Mgmt System"]



        .....
        .....
        }

Commented lines is for Dropdownlist.

Вывод должен быть похож на var MPID:

(3)["D","UDMS","TMA Data Mgmt System"]
(3)["U","TDMS","SMA Mgmt System"]

person chetan kambli    schedule 09.09.2019    source источник


Ответы (3)


Вам нужно использовать метод dataItems для множественного выбора, чтобы получить базовые выбранные элементы данных.

поэтому все, что вам нужно сделать, это изменить свой код с:

var MPID = $("#DDRolecode").data("kendoMultiSelect").value().split('-') 

to:

var MPID = $("#DDRolecode").data("kendoMultiSelect").dataItems(); 

Таким образом, это даст вам массив элементов данных, которые вы выбрали. Поэтому, если вам нужен только идентификатор, измените value mapping на valuePrimitive:true или сопоставьте возвращаемые элементы данных с нужным вам списком массивов.

Я включил додзё, показывающее, как получить предметы: https://dojo.telerik.com/ILEvITUQ

Это взято из демонстрационного додзе API для множественного выбора, но я изменил кнопку Get Values, чтобы сопоставить элементы только с их значениями, а также упорядочить массив dataItems.

person David Shorthose    schedule 09.09.2019

Вы можете сделать так:

var selectedValues = $("#DDRolecode").data("kendoMultiSelect").value().map(item => item.split("-"));

Результат будет:

Консольный результат

Демо

person DontVoteMeDown    schedule 09.09.2019
comment
var ROLECODE = $(#DDRolecode).data(kendoMultiSelect).value(); var MPID = $(#DDRolecode).data(kendoMultiSelect).value().map(item =› item.split(-)); - person chetan kambli; 09.09.2019
comment
@Dintvotedown .. я получаю данные множественного выбора от Sp. Пожалуйста, проверьте ссылку. преобразовать выпадающий список кендо в множественный выбор кендо"> stackoverflow.com/questions/57802489/ - person chetan kambli; 09.09.2019
comment
@chetankambli ваш вывод отличается, потому что ваши данные отличаются, я думаю. - person DontVoteMeDown; 09.09.2019
comment
я не получаю результат в вашем формате. Это именно то, что я хочу. Я просто получаю значение в массиве, таком как D и U - person chetan kambli; 09.09.2019
comment
@chetankambli да, я это вижу, но я говорю, основываясь на добавленном вами изображении, что ваши данные не такие, как вы разместили в вопросе .. посмотрите на свои данные: i.stack.imgur.com/78GPn.png - person DontVoteMeDown; 09.09.2019
comment
я пытаюсь отобразить результат для переменной MPID - person chetan kambli; 09.09.2019
comment
@chetankambli, вы могли бы упростить свой код до var MPID = control.dataItems().map(item => item.Name.split("-")); - person DontVoteMeDown; 10.09.2019
comment
Давайте продолжим обсуждение в чате. - person chetan kambli; 10.09.2019

Код ниже работал для меня:

var control = $("#DDRolecode").data("kendoMultiSelect");
            var selectedDataItems = control.dataItems();

            //// create an array that only contains the selected ids
            var MPID = [];
            $(selectedDataItems).each(function () {
                MPID.push(this.Name.split('-')); // you can access any property on your model here
            });
            console.log(MPID);
person chetan kambli    schedule 10.09.2019