2013-08-28 169 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