我的javascript / AJAX方法:
function addItems(items) {
var values = new Array();
for (var i = 0; i < items.length; i++) {
values[i] = items[i].Item.ID;
// gets values back correctly
console.log(values[i]);
}
// print values
$('#items').data("kendoMultiSelect").value(['"' + values + '"']);
};
// success
$(document).on("click", "#add-items-button", function () {
var myUrl = $('#MyURL').val();
$.ajax({
url: myUrl, // get URL from view
method: 'GET',
dataType: 'json',
success: function (data) {
addItems(data);
},
error: function (xhr, status, error) {
console.log(error);
}
});
});
我的多选小部件是部分视图,所以:
@using Kendo.Mvc.UI
@(Html.Kendo().MultiSelect()
.Name("items") // Name of the widget should be the same as the name of the property
.DataValueField("ID")
.DataTextField("Name")
.BindTo((System.Collections.IEnumerable)ViewData["items"])
.Placeholder("Add Items")
)
我错过了一些非常明显的东西吗?我是否以不正确的格式将数据写回多选小部件?请帮忙。
答案 0 :(得分:0)
您需要将项添加到multiselect的数据源。
$('#items').data("kendoMultiSelect").dataSource.add( { ID: 1, Name: "Name" });
这是一个现场演示:http://jsbin.com/eseYidIt/1/edit
答案 1 :(得分:0)
它可能对其他人有帮助
var multiSelect = $('#mymultiSelect').data('kendoMultiSelect'); var val = multiSelect.value().slice(); $.merge(val, "anil.singh@hotmail.com"); multiSelect.value(val); multiSelect.refresh();
OR
$(&#39;#mymultiSelect&#39)的数据(&#34; kendoMultiSelect&#34)dataSource.add({ID:&#34; EMP100XYZ&#34 ;, EmailId:&#34; ayz@gmail.com" });