Kendo Grid Row单击更改颜色

时间:2016-04-05 09:37:58

标签: jquery html css kendo-ui kendo-grid

我有一个带有以下代码的kendo网格:

var data = <?php echo $model->over_view; ?>;
        var grid = $("#grid").kendoGrid({
            dataSource: {
                data: data,
                pageSize: 10,
                sort: { field: "metric", dir: "asc" }
            },
            dataBound: function () {
                $('td').each(function () {
                    if($(this).text() == 0){
                        $(this).text('.');
                    }
                    if ($(this).text() == 'Bad') {
                        $(this).addClass('critical')
                    } else if ($(this).text() == 'Good') {
                        $(this).addClass('ok')
                    } else if ($(this).text() == 'Suspect') {
                        $(this).addClass('warning')
                    } else if ($(this).text() == 'Idle') {
                        $(this).addClass('idle')
                    }
                })
            },
            //rowTemplate: '<tr class="#: classification ==\"Good\" ? "discontinued" : "" #" data-uid="#: uid #"><td>#: classification #</td><td>#: MAC #</td> <td>#: f_Auth #</td><td>#: f_Assoc #</td><td>#: f_EAP #</td><td>#: f_EAPOL #</td><td>#: f_Data #</td><td>#: f_DHCP #</td> <td>#: f_Unk #</td><td>#: metric #</td></tr>',
            sortable: true,
            resizable : true,
            pageable: true,
            toolbar: kendo.template($("#filterDeviceType").html()),
            columns: [
                { field: "classification", title: "Device Health",headerAttributes:{ style:"text-align:center"}},
                { field: "display_mac", title: "Devices", width: 150,headerAttributes:{ style:"text-align:center "}, template:"<a target=\"_blank\" href='"+$("#visualize-url").val()+ "?trace_id=" + $("#trace-id").val()+"&mac="+"${MAC}&perspective=${type}'>${display_mac}</a>" },
                { field: "f_Auth", title: "Authentication Failure",headerAttributes:{ style:"text-align:center"} },
                { field: "f_Assoc", title: "Association Failure",headerAttributes:{ style:"text-align:center"}},
                { field: "f_ReAssoc", title: "Re-Association Failure",headerAttributes:{ style:"text-align:center"}},
                { field: "f_EAP", title: "EAP Failure" ,headerAttributes:{ style:"text-align:center"}},
                { field: "f_EAPOL", title: "EAPOL Failure",headerAttributes:{ style:"text-align:center"}},
                { field: "f_Data", title: "Data Failure",headerAttributes:{ style:"text-align:center"}},
                { field: "f_DHCP", title: "DHCP Failure",headerAttributes:{ style:"text-align:center"}},
                { field: "Data", title: "Data Packets",headerAttributes:{ style:"text-align:center"}},
                { field: "Total", title: "Total Packets",headerAttributes:{ style:"text-align:center"}}

            ]
        });

网格“设备”中的第二列是一个超链接,每个行项指向一个特定页面。我想添加功能,如果用户点击一个行项目,kendo网格会记住点击并相应地更改该行项目的颜色(从蓝色到紫色,就像google在其搜索页面中所做的那样) 我该怎么做?

2 个答案:

答案 0 :(得分:1)

这可以在不担心剑道框架的情况下完成。您所拥有的只是一个表格,当您单击要突出显示该行的链接时。所以这就是你能做的。

$("#grid tr a").on('click',function(){
  $("#grid tr.activeRow").removeClass('activeRow'); //remove previous active row
  $(this).closest('tr').addClass('.activeRow');//set current row as active
});

所以我们所做的就是将click事件绑定到表格中的所有锚点标签。点击它时,我们找到最接近的tr并应用类activeRow。现在我们必须指定CSS规则来改变这个类的颜色。

tr.activeRow td{
  background-color: violet;
 }

修改1:

  

我只想更改该行元素(超链接)的颜色,而不是整行。

只能更改锚标记的td,您可以执行此操作。

$(this).closest('td').css('background-color','violet');

否则你可以指定一个班级

 $(this).closest('td').addClass('activeTd');

和css一样规则

 td.activeTd {
   background-color: violet; 
 }
  

另外,我在哪里放这个代码?

您必须将jquery放入网格databound事件中。

答案 1 :(得分:0)

我尝试使用代码 .k-grid th.k-state-selected, .k-grid td.k-state-selected, .k-grid tr.k-state-selected > td { color: #292b2c; background-color: #cecece !important; } 对我有用。