【问题标题】:How to edit pills of Kendo UI Multiselect如何编辑 Kendo UI Multiselect 的药丸
【发布时间】:2017-02-02 19:27:48
【问题描述】:

使用 Kendo UI 多选,他们内置了药丸容器...您可以指定特定的 tagTemplates,但这只会更改药丸容器内的内容,而不是药丸本身。

我想知道是否有人知道如何自定义所选项目的实际药丸。

感谢您的帮助。

【问题讨论】:

    标签: javascript html kendo-ui multi-select


    【解决方案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>,样式需要应用到该父选择器,因为将样式应用于内容/tagTemplate 本身不包含整个标签。不过,它可以使用 javascript 来完成。

    我已更新示例以附加到 Multiselect 的更改事件以执行一些 javascript 以根据任意值将背景颜色应用于所选项目的 parent <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。

    【讨论】:

    • 谢谢,我不知道剑道多选药丸的类别名称,也找不到任何地方。但是,如果我希望每个药丸根据多选中项目的颜色值是不同的颜色,我该如何访问这些。
    • 不幸的是,CSS 没有父选择器,您需要选择 tagTemplate 的父 li 来设置背景颜色。不过,它可以使用 javascript 来完成。我已经更新了一些答案。
    • 谢谢!正是我需要的。我添加了一个与您类似的更改功能,但我有一个动态的人员列表(每次都可能非常不同),所以我抓住了有问题的新标签(您刚刚单击以添加),然后执行另一个循环循环通过多选中的所有人来匹配名称,然后当找到匹配项时,将他们的标签颜色设置为他们选择的颜色:)
    • Tyler - 关于您的第一条评论,通过在浏览器中打开开发人员工具并检查页面上的元素,可以轻松找到任何 kendo ui 元素的类名。
    • @Naitik,在特定 MultiSelect 的样式上使用更具体的 CSS 选择器(即使用 id)。具有 2 个 MultiSelct 和 2 个样式的示例:dojo.telerik.com/@Stephen/IVEJERAW
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多