2017-02-02 14 views
0

С мультиспектром Kendo UI они создали контейнеры для таблеток ... вы можете указать конкретные tagTemplates, но это просто изменяет то, что находится внутри контейнера для таблеток, а не сама таблетка.Как отредактировать таблетки Kendo UI Multiselect

Мне интересно, сможет ли кто-нибудь узнать, как настроить фактическую таблетку выбранного предмета.

Благодарим за помощь.

ответ

1

Вы можете использовать CSS стиль вашего выбора на соответствующий селектор, т.е.

.k-multiselect li.k-button { 
    border-radius: 50px; 
    border-style: ridge; 
    border-width: 2px; 
    background-color: deeppink; 
} 

Пример: http://dojo.telerik.com/@Stephen/AyEKE

Редактировать основанный на комментарий CSS не имеет родительского селектор, чтобы пойти up от tagTemplate до родителя <li>, к которому должен применяться стиль, поскольку применение стиля к тегу content/tagTemplate не охватывает весь тег. Однако это можно сделать с помощью javascript.

Я обновил пример для присоединения к событию изменения в Множественном выполнить некоторые JavaScript, чтобы применить цвет фона для родителя<li> выбранных элементов на основе некоторой произвольной величины элемента. В моем примере я добавил значение CompanyName в tagTemplate значение данных и триггеры javascript для этого, чтобы применить другой цвет, основанный на имени.

Обновленный tagTemplate включить CompanyName пунктов:

tagTemplate: '<span data-companyname="#:data.CompanyName#"... 

И добавил обработчик изменения событий для множественного выбора, который находит родительский узел и применяет стиль:

change: function (e) { 
        var selectedTags = $(".k-multiselect li.k-button"); 
        for (var i = 0; i < selectedTags.length; i++) { 
         var tag = $(selectedTags[i]); 
         var item = $(tag.find("span.selected-value")); 
         if (item.data("companyname") === "Alfreds Futterkiste") { 
         tag.css({ "background-color": "deeppink" }); 
         } 
         if (item.data("companyname") === "Ana Trujillo Emparedados y helados") { 
         tag.css({ "background-color": "green" }); 
         } 
         // ... 
        } 
        } 

Теперь, это не обязательно лучший способ реализовать javascript, но я верю, что у вас есть, чтобы использовать javascript.

+0

Спасибо, я не знал названия классов для ксеровых мультиселективных таблеток и не мог найти их нигде. Однако, как я могу получить доступ к ним, если я хочу, чтобы каждая пилюля была другого цвета, в зависимости от значения цвета элемента внутри мультиэлемента. –

+0

К сожалению, CSS не имеет родительского селектора, для которого вам нужно будет выбрать родительский элемент tagTemplate, чтобы установить фоновый цвет. Однако это можно сделать с помощью javascript. Я немного обновил ответ. –

+0

Спасибо! Только то, что мне было нужно. Я добавил функцию изменения, похожую на вашу, но у меня есть динамический список людей (может быть очень разный каждый раз), поэтому я беру на себя новый тег (который вы только что нажали, чтобы добавить), затем выполните еще один цикл в цикле через всех людей в multiselect, чтобы соответствовать именам, тогда, когда найдено совпадение, установите цвет тегов на их выбранный цвет :) –