Moin,
ich weiß, die Frage klingt merkwürdig. Aber ich habe folgendes Problem: Ich zeige eine Übersichtstabelle an, und gelegentlich muss ich Zellen in dieser Tabelle hervorheben. Die Schwierigkeit ist - zu der Zeit, wo ich entscheiden will, ob eine Hervorhebung nötig ist oder nicht, da gibt's die Table noch nicht im DOM. Und ich habe auf die Erzeugung des <TD> keinen Einfluss. Ich erzeuge nur per Cell-Template die Inhalte (die Table wird danach erst vom Kendo UI Grid drumherum generiert).
Ich sehe derzeit zwei Möglichkeiten.
-
Ich nutze das Databound-Event des Grid. Dann gibt's die Table und ich kann über das von Kendo generierte DOM laufen, anhand eines data-Attributs in den tr mein Datenobjekt finden, und dann nachträglich die TDs mit einer class versehen, um Dinge hervorzuheben. Das funktioniert, ist aber TRÄGE.
-
Ich erzeuge nicht Text, sondern bei Bedarf im Cell-Template kleine HTML-Fragmente als Inhalt, z.B. ein div mit einer class, die die Hervorhebung auslöst. Nun sind die Tabelleneinträge mal länger und mal kürzer, d.h. sie brechen ggf. um und die Row-Höhe ist nicht konstant, Wenn ich in einer Row einzeilige und mehrzeilige Inhalte mische, und dann den einzeiligen Inhalt hervorheben will, dann füllt das DIV nicht die Zelle aus (bzw. tut es schon, aber die TDs der Row sind laut DOM Explorer unterschiedlich hoch). Siehe "problematische Seite".
Keine Alternative ist: Auf Kendo verzichten. Weil ich sonst vieles nachprogrammieren müsste, was ich von Kendo frei Haus bekomme.
Die Alternative 1 funktioniert, ist aber langsam. Ohne Databound-Handler läuft das Grid viel geschmeidiger.
Das Ergebnis von Alternative 2 ist eben nur sehr unschön. Wie bekomme ich es hin, dass alle TD einer TR gleich hoch sind, damit das DIV mit width:100% und height:100% die Zelle korrekt ausfüllt?
Alternativen, die ich NICHT nutzen will, sind:
a. auf Kendo verzichten. Das Grid ist gesetzt.
b. feste Zeilenhöhe pro Row. Damit würde die Table in den meisten Fällen sehr auseinandergerissen.
c. Row-Templates statt Cell-Templates. Ich hätte dann zwar die Kontrolle über die TDs, aber mein Grid ist inline editierbar und das geht mit Row-Templates nicht zusammen. Ein dokumentiertes Kendo-Defizit.
Hat jemand eine Idee, wie ich meine Hervorhebungen zellfüllend bekommen könnte?
Rolf