2014-10-22 1 views
1

Как я могу ограничить пользователей удалением уже сохраненных элементов в виджле Multi select. Пользователи не должны удалять существующие значения, но могут добавлять или удалять новые значения.kendo ui multiselect удалить действие удаления

Решение, которое я попробовал, было на databound, удалите значок удаления, как показано ниже. Он удаляется, но возвращается после того, как вызов выполняет метод привязки данных.

Любые идеи?

onDataBound: function (e) { 
     e.preventDefault(); 
     $(e.sender.tagList).find("li span.k-delete").remove(); 
    } 

Это код в представлении, которая вызывает вышеприведенную функцию Js на DataBound

@(Html.Kendo().MultiSelectFor(x => x.Documents) 
         .DataTextField("Description") 
         .DataValueField("Code") 
         .Placeholder("Select Attachment...") 
         .AutoBind(false) 
         .DataSource(source => source.Read(read => read.Action("GetCustomerDocuments", "CustomerRequest")).ServerFiltering(true)) 
         .HtmlAttributes(new {style = "width:400px;"}) 
         .Events(e => e.DataBound("onDataBound"))        
        ) 
+0

Показать больше код: что является элементом вы работаете? Каково его определение? – chiapa

+0

еще какой-нибудь код добавлен. Я ожидаю, когда данные будут связаны, тогда функция js вызывается для удаления элементов span с классом «k.-delete» – Angad

+0

. Итак, вы хотите, чтобы multi-select принимал только добавление элементов? Вы не хотите, чтобы пользователь щелкал маленьким крестом и удалял элемент из ранее выбранных элементов? – chiapa

ответ

0

ли ваши попытались использовать тот же метод на событие изменения как на событие DataBound?

Razor:

.Events(e => e.Change("onChange")) 

Javascript:

onChange: function (e) { 
    e.preventDefault(); 
    $(e.sender.tagList).find("li span.k-delete").remove(); 
}