我尝试使用kendo multi select创建一个选定id的数组。
这是jsfiddle
这是kendo脚本: -
$("#multiselect").kendoMultiSelect({
dataSource: [
{ id: 1, name: "Apples" },
{ id: 2, name: "Oranges" }
],
dataTextField: "name",
dataValueField: "id",
select:onSelect
});
kendo选择功能: -
function onSelect(e){
var dataItem = this.dataSource.view()[e.item.index()];
onchng(dataItem.id);
}
创建一个数组: -
function onchng(id){
var checkarr = [];
checkarr.push(id);
console.log(checkarr);
}
此处输出为[1] [2]
但我想要['1','2']
有可能吗?
感谢
答案 0 :(得分:0)
当你的select事件被触发时,'checkarr'会一次又一次地重新定义。你的问题是。如果要在一个数组中使用值,则必须使用按钮将值一起取出,然后将它们推送到单个函数中的数组。或者您可以使用会话或类似的东西
答案 1 :(得分:0)
这是您可以从Controller执行此操作的方法。注意我正在做Request.Form,这是因为无论出于何种原因,MVC Model和Kendo UI在使用MultiComplete时都无法协同工作。但是这会将它们放在一个数组中,这就像按下建议的其他答案一样点击按钮。
string[] advertisers = Request.Form["Name"].ToString().Split(',');
答案 2 :(得分:0)
我认为有一种更简单的方法,副作用更少......
绑定change
个事件而不是select
。为什么?有两个原因:
select
在元素添加到值列表之前触发,因此您无法获取当前列表,并且需要将选定的值添加到已选择的值中。select
。使用change
的代码非常简单:
var multi = $("#multiselect").kendoMultiSelect({
dataSource: [
{ id: 1, name: "Apples" },
{ id: 2, name: "Oranges" }
],
dataTextField: "name",
dataValueField: "id",
change : onSelect
}).data("kendoMultiSelect");
function onSelect(){
console.log("here", multi.value());
}
只需使用value
中的multiselect
方法。
您的小提琴在此修改:http://docs.telerik.com/kendo-ui/api/framework/datasource#events-change
注意:change
事件属于DataSource
,如果您需要查看文档,请检查here