Wie kann ich die Hintergrundfarbe einer Zelle in eine jqgrid für einen benutzerdefinierten Formatierer?
Ändern kann ich die Farbe für den text dadurch in jqgrid benutzerdefinierten Formatierer:
function YNFormatter(cellvalue, options, rowObject)
{
var color = (cellvalue == "Y") ? "green" : "red";
var cellHtml = "<span style='color:" + color + "' originalValue='" +
cellvalue + "'>" + cellvalue + "</span>";
return cellHtml;
}
will ich aber jetzt ändern Hintergrundfarbe der gesamten Zelle (statt der text-Farbe).
Ist das möglich?
- Überprüfen Sie aktualisierte Antwort.
- ich fügte hinzu, ein weiterer Kommentar
- Man sollte Sie nur verwenden
'background-color'
statt'color'
aus und legen Sie zusätzliche Stil'background-image':'none'
zu entfernen, das Bild im hintergrund stammt noch aus der jQuery-UI-Klasse "ui-widget-content'. Wenn Sie möchten, zusätzlich die standard-Farbe für den Schwebeflug oder/und die ausgewählten Zeilen, die Sie verwenden können, Technik, die ich beschrieben in stackoverflow.com/questions/4956949/... - hintergrund-Farbe ist nur für die Spannweite (und nicht die ganze TD-Zelle)
- In deiner Frage hast du geschrieben, dass Sie wollen/müssen, verwenden Sie einen benutzerdefinierten Formatierer. Der text zurückgegeben, indem die benutzerdefinierte formatter-platziert werden in den
<td>
Zelle. So in der Art du hast keine chance, zu ändern, die<td>
selbst. Maximale, was Sie tun können, ist, platzieren Sie jedes element wie<span>
haben könnte, die gesamte Größe des<td>
(abhängig von der verwendeten CSS). In dem Fall ist der hintergrund der<span>
sehen sein wird, für die der Benutzer genau wie der hintergrund der Zellen. Verwenden von benutzerdefinierten formatter können Sie nicht mehr tun. - Alle klar Mach ich und schrieb meine Antwort.
- vielen Dank für das Beispiel (und Ihre Geduld).. in der Tat sehr hilfreich
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, verwenden
<span>
- element in der benutzerdefinierten Zelle formatter können Sie die Rückgabe von benutzerdefinierten formatter -wo der Stil der
span.cellWithoutBackground
können Sie definieren, wie zum Beispiel das folgendeWie es funktioniert, sehen Sie live -hier:
AKTUALISIERT: Die Antwort ist alt. Die beste Praxis wäre, die Nutzung
cellattr
Rückruf incolModel
anstelle der Verwendung von benutzerdefinierten Formatierungen. Ändern der Hintergrundfarbe der Zelle ist im Allgemeinen einfach zuweisenstyle
oderclass
- Attribut, um die Zellen der Spalte (<td>
Elemente). Diecellattr
callback definiert in der SpaltecolModel
ermöglicht, genau dies zu tun. Kann man ja immer noch vordefinierte Formatierungen wieformatter: "checkbox"
,formatter: "currency"
,formatter: "date"
und so weiter, aber trotzdem ändern Sie die Hintergrundfarbe in der Spalte. In der gleichen Weise dierowattr
Rückruf, die definiert werden kann als das jqGrid-option (außerhalb der bestimmten SpaltecolModel
), ermöglicht das zuweisen Stil/Klasse für die gesamte Zeile (<tr>
Elemente).Mehr Informationen über
cellattr
finden hier und hier, zum Beispiel. Eine andere Antwort erklärtrowattr
.Hier ist was ich getan habe:
Hier
Eigentlich brauchst du nicht einmal für einen benutzerdefinierten Formatierer, wenn Sie nur beabsichtigen, es zu tun für die Einstellung der Farben.
Sie können sogar festlegen, color-Wert, der von hier aus wie,
Happy Coding.
loadComplete
Veranstaltung. Erhalten Sie die ids der geladenen Daten mit Bezug aufgetDataIDs
- Methode, dann erhält die Zelle Daten in einer Schleife mitgetCell
es zu prüfen, und ändern Sie den Stil der Zelle mitsetCell
mit leerer string als Daten-parameter (siehe trirand.com/jqgridwiki/doku.php?id=wiki:methods für weitere details). Sie können auch 'formatter:die checkbox" zusätzlich.