如果有人可以提供帮助,我会非常感激。
我最初没有数据源的Kendo Multiselect:
@Html.Kendo().MultiSelectFor(model => model.Contract.ACCOUNT_NO).DataTextField("IBAN").DataValueField("IBAN")
一个将项目附加到此选择的函数:
function getCustomerAccount(iban) {
var ms = $("#Contract_ACCOUNT_NO").data('kendoMultiSelect');
ms.dataSource.insert(0, { IBAN: iban, IBAN: iban }); //first insert to the dataSource
//then insert to the textBox as selected item
$("#Contract_ACCOUNT_NO_taglist").append("<li class='k-button' unselectable = 'on'><span unselectable='on'>" + iban + "</span><span unselectable='on' class='k-icon k-delete'>delete</span></li>");
//next set inserted element prop to 'selected' (without this the Model does not accept selected items)
$("#Contract_ACCOUNT_NO option[value=" + iban + "]").prop('selected', true);
}
问题在于将项目的道具设置为selected
,它仅将此属性设置为最后选择的项目。为什么之前商品的道具不会停留在selected
?
第二个问题是当我删除最后一个选定项目时,其selected
属性保留true
。
我的方法是将我插入textBox
的项目直接绑定到dataSource
的{{1}}。
答案 0 :(得分:1)
不要进行此类手动插入 - 将项目添加到dataSource后,使用MultiSelect的value方法实际更新值。
e.g。
var oldValue = multiselect.value().slice(); //create new array
res.push(33); //add some more or new value
multiselect.value(res)