Wie kann ich alternierende Zeile Hintergrundfarbe in jqGrid einfügen?jqGrid Reihe wechselnden Hintergrund
Antwort
function applyZebra(containerId) {
$('#' + containerId + ' tr:nth-child(even)').addClass("jqgrow evenTableRow");
$('#' + containerId + ' tr:nth-child(odd)').addClass("jqgrow oddTableRow");
}
ContainerId ist Ihre jqGrid ID. Rufen Sie diese Methode für das Ereignis "gridComplete" Ihres jqGrid auf.
$("#myGrid").jqGrid({
...
gridComplete: function() {
var _rows = $(".jqgrow");
for (var i = 0; i < _rows.length; i += 2) {
_rows[i].attributes["class"].value += " alt";
}
}
});
* Weg * zu viel Arbeit. Diese Funktion ist bereits im Grid integriert. Keine Notwendigkeit, es neu zu erfinden. –
Blick auf die altRows
und altclass
options. Vorsicht vor der typischerweise inkonsistenten Großschreibung! Dies verwendet das jQuery UI-Design, wenn Sie jqGrid 3.5 oder höher verwenden.
Um die jQuery UI-Thema verwenden diesen Code zu verwenden:
$('#'+gridName+' tr:nth-child(even)').removeClass("ui-priority-secondary");
$('#'+gridName+' tr:nth-child(odd)').addClass("ui-priority-secondary");
ich diesen Code verwenden, wenn I Handsortierung (Drag-and-Drop)
die CSS Hallo definiert zuerst auszuführen:
<style type="text/css">
......
.Color_Red { background:red; }
.Color_Cyan { background:cyan; }
......
Dann in jqGrid ...
$("#list2").jqGrid({
........
loadComplete: function() {
var rowIDs = jQuery("#list2").getDataIDs();
for (var i=0;i<rowIDs.length;i=i+1){
rowData=jQuery("#list2").getRowData(rowIDs[i]);
var trElement = jQuery("#"+ rowIDs[i],jQuery('#list2'));
// Red
if (rowData.Estado == 0) {
trElement.removeClass('ui-widget-content');
trElement.addClass('Color_Red');
}
// Cyan
if (rowData.Estado == 2) {
trElement.removeClass('ui-widget-content');
trElement.addClass('Color_Cyan');
}
}
},
});
So gehen wir die Reihen und gelten RED die Bedingung zu erfüllen, die 0 und Cyan == die dem Zustand == 2 erfüllen.
Sie sollten rowData.XXX == XX nach Spaltennamen und Wert zu überprüfen.
Ich habe es so und es funktioniert perfekt.
Glück!
Rufen Sie die Funktion loadComplete auf, um die Hintergrundfarbe der Zeile in jqgrid zu ändern.
zum Anwenden von Stilen auf den Hintergrund verwenden Sie unter CSS.
<style type="text/css">
.myAltRowClassEven { background: #E0E0E0; border-color: #79B7E7; }
.myAltRowClassOdd { background: orange; }
</style>
Oder
Für Zeile Schriftart in jqGrid Ändern sehen Sie im folgenden Link
How can I change Background colour and Font of any row in JQGrid?
Große Lösung, aber es wäre schön, wenn die gerade/ungerade Farben ausgewählt werden könnte das jQuery UI-Design. –