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

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

下拉列表包含 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"]

【问题讨论】:

    标签: javascript ajax model-view-controller kendo-ui kendo-multiselect


    【解决方案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 获取多选数据。请检查链接.. stackoverflow.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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-05
        • 2014-03-03
        • 1970-01-01
        • 1970-01-01
        • 2017-08-15
        相关资源
        最近更新 更多