You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kendo GridView中选择下拉列表值后如何实现对应行高亮?

Kendo Grid下拉列选值后高亮当前行实现方案

首先新增自定义高亮样式,可按需调整颜色、边框等属性:

.k-grid tr.highlighted-row {
    background-color: #fff3cd !important;
    border-color: #ffeeba !important;
}

单下拉列实现方式

如果只有个别下拉列需要该效果,直接在对应列的editor配置中绑定下拉的change事件即可:

$("#grid").kendoGrid({
    columns: [
        // 其他列配置省略
        {
            field: "selectField",
            title: "下拉列",
            editor: function(container, options) {
                $("<input name='" + options.field + "'/>")
                    .appendTo(container)
                    .kendoDropDownList({
                        dataSource: ["选项1", "选项2", "选项3"], // 替换为你的下拉数据源
                        change: function(e) {
                            // 获取当前下拉控件所在的表格行
                            const targetRow = $(e.sender.element).closest("tr");
                            // 可选:清除其他所有行的高亮,不需要保留多行行高亮可保留该行
                            $("#grid").find(".highlighted-row").removeClass("highlighted-row");
                            // 给当前行添加高亮样式
                            targetRow.addClass("highlighted-row");
                        }
                    });
            }
        }
    ],
    editable: true
    // 其他Grid配置省略
});

全量下拉列统一实现方式

如果Grid内所有下拉列都需要该效果,直接绑定Grid的edit事件统一处理,无需逐个修改列配置:

$("#grid").kendoGrid({
    columns: [/* 按原有逻辑配置列即可,无需修改下拉列的默认配置 */],
    editable: true,
    edit: function(e) {
        // 检测当前编辑项是否为下拉列表
        const dropdown = e.container.find(".k-dropdown").data("kendoDropDownList");
        if (dropdown) {
            dropdown.bind("change", function(evt) {
                const targetRow = $(evt.sender.element).closest("tr");
                targetRow.addClass("highlighted-row");
                // 不需要保留多行行高亮就加下面这行
                // e.sender.tbody.find(".highlighted-row").removeClass("highlighted-row");
            });
        }
    }
    // 其他Grid配置省略
});

补充说明

  • 如果需要分页、排序、过滤操作后仍保留高亮状态,可将高亮行的唯一主键存入全局数组,在Grid的dataBound事件中遍历数组给对应行重新添加高亮样式即可。
  • 样式中的!important用于覆盖Kendo默认的行悬浮、选中样式,不需要覆盖可自行调整样式优先级后移除。

内容的提问来源于stack exchange,提问作者Asima Mohanty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:45:02