使用jQuery将项添加到Kendo Multiselect

时间:2014-08-08 05:52:04

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

如果有人可以提供帮助,我会非常感激。

我最初没有数据源的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}}。

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)