2017-02-02 47 views
0

使用Kendo UI multiselect,它们已经内置在药丸容器中...您可以指定特定的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没有一个家长选择去从tagTemplate添加到父项<li>,将样式应用到内容/ tagTemplate本身并不包含整个标签。不过,它可以使用JavaScript完成。

我已经更新附加到复选的变化情况来执行一些JavaScript的背景颜色应用于父基于项目的一些任意值所选项目的<li>的例子。在我的示例中,我将公司名称添加到tagTemplate的数据值,并且我的JavaScript触发器会根据名称应用不同的颜色。

更新了tagTemplate包括项目的公司名称:

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

谢谢,我不知道kendo multiselect药丸的类名,并且无法在任何地方找到它们。然而,如果我想让每个药丸根据多重选择内的物品的颜色值变成不同颜色,我该如何访问这些药物。 –

+0

不幸的是,CSS没有父级选择器,您需要选择tagTemplate的父级li来设置背景颜色。它可以使用JavaScript来完成。我已经更新了答案。 –

+0

谢谢!正是我需要的。我添加了一个类似于你的更改函数,但我有一个动态的人员列表(每次都可能会非常不同),所以我抓住有问题的新标签(刚添加的那个标签),然后做另一个循环来循环通过multiselect中的所有人来匹配名字,然后当找到匹配时,将他们的标记颜色设置为他们选择的颜色:) –