如何在 Kendo 多选变量中获取选定的文本?

Posted

技术标签:

【中文标题】如何在 Kendo 多选变量中获取选定的文本?【英文标题】:How to take the selected text in Kendo multiselect variable? 【发布时间】:2020-01-11 04:16:06 【问题描述】:

我已将剑道下拉列表转换为剑道多选。

下拉列表包含 2 项:

    D-UDMS-TMA 数据管理系统 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"]

【问题讨论】:

【参考方案1】:

您需要在多选上使用dataItems 方法来获取底层选定的数据项。

所以你需要做的就是改变你的代码:

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

到:

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

因此,这将为您提供您选择的数据项数组。因此,如果您只需要 id,则将 value mapping 更改为 valuePrimitive:true 或将返回的 dataItems 映射到您需要的数组列表。

我已经包含了一个道场,展示了如何获得这些物品:https://dojo.telerik.com/ILEvITUQ

这取自多选的 api demo dojo,但我更改了 Get Values 按钮以仅将项目映射到它们的值,并将 dataItems 数组字符串化。

【讨论】:

【参考方案2】:

你可以这样做:

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

结果将是:

Demo

【讨论】:

var ROLECODE = $("#DDRolecode").data("kendoMultiSelect").value(); var MPID = $("#DDRolecode").data("kendoMultiSelect").value().map(item => item.split("-")); @Dintvotedown .. 我从 Sp 获取多选数据。请检查链接.. ***.com/questions/57802489/… @chetankambli 你的输出是不同的,因为你的数据是不同的,我认为。 我没有得到你的格式的结果..这正是我想要的..我只是在像 D 和 U 这样的数组中获取值 @chetankambli 您可以将代码简化为var MPID = control.dataItems().map(item => item.Name.split("-"));【参考方案3】:

下面的代码对我有用:

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);

【讨论】:

以上是关于如何在 Kendo 多选变量中获取选定的文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 Kendo DropDownList 的选定值

Kendo ui 多选验证

如何在多选选项中获取选定选项数据属性

如何在angular2中获取多选下拉选定值

如何在 Kendo UI TabStrip 中获取对当前选定选项卡的引用?

如何从输入中获取多选文件到c#对象