2013-08-28 129 views
0

我已经在这里看到很多答案,但没有一个对我有用。我不明白为什么? jqGrid 4.4.2jqGrid更改复选框的行颜色

对已经选中的复选框从DB:

gridComplete: function() { 
    $("input:checkbox:checked").closest('tr').addClass("redBackground"); 
}, 

不起作用,但closest('td')或者只是parent()确实改变细胞背景颜色!

这里是变化:

$(document).on('change', "input[type='checkbox']", function(){ 
    if($(this).is(":checked")){ 
     $(this).parent().addClass("redBackground"); 
    }else{ 
     $(this).parent().removeClass("redBackground"); 
    } 
}); 

这样做工作,为电池,但如果我更改为closest('tr')parent().parent() - 排不变色

我缺少什么..

这可能与行分组有关吗?

groupingView : { 
     groupField : ['Date'], 
     groupColumnShow : [true], 
     groupOrder: ['desc'], 
     groupDataSorted : true 
    }, 

回答

2

设置颜色和背景色基于数据网格的行,最好的办法是rowattr回调的使用。 The answer提供了一个例子。你使用的方法一般也应该工作,但要慢一些。典型的原因可能是您只在类别redBackground的定义中指定background-color。 jqGrid使用的标准jQuery UI类使用background CSS代替。所以要改变行的背景颜色,你必须另外设置background-image: nonebackground-color。在the answer中描述了设置颜色的一些其他变化。

+0

嗨奥列格,感谢您的答案!我看到......只是使用'background'而不是'background-color'确实为我解决了......感谢您的解释。但我会考虑你提到的第一个提到的答案。这似乎是合理的。 – Elen

+0

@Elen:不客气! – Oleg