css - Kendo UI Web - 下拉列表,每个列表项的背景颜色不同。

标签 css kendo-ui

我正在玩 Kendo UI Web 并寻找根据特定需求对其进行自定义的方法。 来 self 的 JS bin我只是添加了带有示例列表项的 Kendo UI 下拉控件,它们的背景需要用相应的颜色呈现。

我花了一些时间检查元素以改变其样式,但尚未找到控制每个列表项的解决方案。有没有人有这方面的经验?

最佳答案

有一个容易的部分和一个困难的部分。容易的是获得背景,难的是让它看起来漂亮。

很简单,定义一个模板来呈现每个列表项:

<script id="template" type="text/kendo-tmpl">
    <div style="background-color: #= text #;">#= text #</div>
</script>

然后将您的 ComboBox 定义为:

$(document).ready(function () {
    $('#combobox').kendoComboBox({
        template : $("#template").html()
    });
});

但是自<div> 之前,这可能没有您想要的那么好。在我的模板中有一个 <li>由 KendoUI 引入,除非您想开始使用它,否则您可能会考虑只显示一个带有元素颜色的颜色方 block 。

你可以这样做:

开始为颜色方 block 定义 CSS:

.ob-patch {
    margin: 4px 6px 0 0 !important;
    height: 14px;
    width: 14px;
    float: left;
    border: 1px solid black;
}

然后每个元素的模板将是:

<script id="template" type="text/kendo-tmpl">
    <div>
        <div style="background-color: #= text #;" class="ob-patch">&nbsp;</div>
        #= text #
    </div>
</script>

和组合框初始化:

$('#combobox').kendoComboBox({
    template: $("#template").html()
});

你的 JS Bin 用这种方法修改了 here

编辑:如果您希望输入的背景获得所选元素的颜色,您应该使用:

function setColor() {
    var val = this.value();
    this.input.css("background-color", val);
}

$("#combobox").kendoComboBox({
    template : $("#template").html(),
    dataBound: setColor,
    change   : setColor
});

哪里change事件处理程序设置 input 的值从选择的选项和dataBound事件处理程序为初始值执行此操作。

关于css - Kendo UI Web - 下拉列表,每个列表项的背景颜色不同。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18138229/

相关文章:

css - IE8 显示内联 block 不起作用

javascript - 模态文本在其他模态中重复

css - 在 Stylus 迭代中使用 CSS 变量

javascript - 有没有办法禁用 kendo ui 调度程序中的特定事件?

kendo-ui - Kendo Grid - 查找单击单元格的列和行索引

css - <span> float 在 <li> 内,在 FF 中创建新行,但在 Chrome 中不创建新行

html - 带有倾斜标签的 CSS 复选框

javascript - 如何删除 telerik kendo treeview 中选定节点的子节点

javascript - 如何实现jQuery Ajax调用的Kendo进度条?

javascript - Legend.labels.template 实现