[InfoCon]

Information & Consulting

[Infos][Dienstleistungen][Logbook]
 

Logbuch

Keine leeren Zeilen im LiveGrid selektieren

Mit der Bibliothek Rico 2.0 werden hübsche interaktive Tabellen implementiert, deren Spalten selektiert und hervorgehoben dargestellt werden können. Die Tabelle unterscheidet allerdings nicht zwischen leeren und nicht-leeren Zeilen, so daß auch solche Zeilen hervorgehoben werden, die leer sind. Solche Zeilen werden nur dann angezeigt, wenn die Tabelle mehr Zeilen enthält als Werte im Puffer zur Verfügung stehen.

Im vorangegangenen Eintrag habe ich beschrieben, wie man das »LiveGrid« dazu bekommt, die Selektion überhaupt hervorgehoben darzustellen. Mit einer leicht veränderten Funktion »drilldown«, die im Grid als Aktion auf den einfachen oder doppelten Mausklick hinterlegt wird, läßt sich dieses Verhalten anpassen:

   function drilldown(e) {
       var col = 0;
       var idx = grid.highlightIdx;
       var row = grid.edit.drillDown(e,0,0);
       var cell = grid.columns[col].cell(row).innerHTML;

       if (!cell.length || cell == ' ') {
            if (idx) {
                grid.menuIdx = idx;
                grid.highlight(idx);
            } else {
                grid.unhighlight();
                grid.highlightIdx = idx;
            }
       }
   }

Für diesen Fall muß die alte Selektion gesichert werden, die im Attribut »highlightIdx« gespeichert ist. Anschließend wird in der Zeile geschaut, ob Werte vorhanden sind. In diesem Fall wird nur die erste Spalte überprüft, dies läßt sich leicht auf weitere ausdehnen. Ist die Spalte leer, wird ein Leerzeichen in den Code geschrieben, mit dem der Wert nun verglichen wird.

Ist die Zeile offensichtlich leer, wird die alte Selektion wieder hergestellt. Gab es bisher keine Selektion, wird die Hervorhebung wieder zurückgenommen.

1.10.2008 09:41 | openrico | permanent link

Zum Kontakformular

© InfoCon   Datenschutz