从kendo multiselect中获取选定的数据数组

时间:2016-08-18 21:17:53

标签: javascript jquery asp.net-mvc kendo-ui multi-select

我正在尝试从我的剑道多选中获取所选项目的数组,这是在剑道网格的编辑器模板中。

多选代码:

viewDidLoad()

我想使用JQuery提取所选项目 - 具体来说,我想要DataValueField,这是一个整数。我已经尝试了几样,但是无法获得适当的整数,而不是ViewData集合中项目的索引。我试过的一些方法。

@(Html.Kendo().MultiSelect()
        .Name("Staff")
        .DataValueField("ID")
        .DataTextField("FullName")
        .BindTo((System.Collections.IEnumerable)ViewData["Staff"])
        .Events(events => events
            .Change("onChange")
        )
        .HtmlAttributes(new { @class = "col-md-7 details-editor" })
    )

我真的不知道该怎么做,如何使用上面的一个或不同的路径来获取正确的int数组。

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

向Multiselect添加.Select("onSelect")事件,并在每次用户选择项目时将值附加到隐藏元素:

function onSelect(e) {
                 var item = e.item;
                var text = item.text();
                  var $data = $('#myHidden');
                  $data.val($data.val() + text);
            };

答案 1 :(得分:0)

要获取所选项目的ID,您可以按如下方式编写onChange方法:

var onChange = function(e) {
 var arrayOfNames = this.value();
 // Do other stuff here...
};

可以找到被解雇的更改事件的文档here

我还写了一个工作示例here

答案 2 :(得分:0)

答案比你想象的要简单。

$('#Staff').val();

这将返回逗号分隔的列表,其中包含.DataValueField中的任何内容。在您的情况下,以逗号分隔的“ID”列表。