如何在 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 多选变量中获取选定的文本?的主要内容,如果未能解决你的问题,请参考以下文章