Frank Seitz
and 1 contributors

NAME

Prty::Html::Table::List - HTML-Tabelle zum Anzeigen einer Liste von Elementen

BASE CLASS

Prty::Html::Table::Base

SYNOPSIS

Attribute von tr- und td-Elemeten setzen. Für jedes Element wird eine Arrayreferenz geliefert:

    $e = Prty::Html::Table::List->new(
        titles=>[qw/Id Name Vorname/],
        align=>[qw/right left left/],
        rows=>\@obj,
        rowCallback=>sub {
            my ($row,$i) = @_;
    
            my $trA = [class=>'TRCLASS'];
            push my @tds,[class=>'TDCLASS',$row->get('ATTRIBUTE')];
            ...
    
            return ($trA,@tds);
        },
    );
    $html = $e->html($h);

Lediglich Werte ausgeben. Für das tr-Element wird undef geliefert, für die td-Elemente ein skalarer Wert (der Content des Elements):

    $e = Prty::Html::Table::List->new(
        titles=>[qw/Id Name Vorname/],
        align=>[qw/right left left/],
        rows=>\@obj,
        rowCallback=>sub {
            my ($row,$i) = @_;
    
            push @arr,$row->get('ATTRIBUTE');
            ...
    
            return (undef,@arr);
        },
    );
    $html = $e->html($h);

DESCRIPTION

Die Klasse erzeugt eine Tabelle aus einer Liste von Objekten. Jedes Objekt wird durch eine Zeile dargestellt. Alle Zeilen- (tr) und Zellenattribute (td) können kontrolliert werden. Die Klasse ist daher sehr flexibel.

Für jedes Objekt wird die Methode $e->rowCallback() gerufen. Die Methode bekommt das Objekt und seine (0-basierte) Position in der Liste der Objekte (Attribut "rows") übergeben. Die Methode liefert die Spezifikation für die Zeile (tr) und ihre Zellen (td) zurück, wobei jede Spezifikation ein Array ist, das unmittelbar an die Methode tag() übergeben wird.

ATTRIBUTES

Zusätzlich zu den Attributen der Basisklasse definiert die Klasse folgende Attribute:

align => \@arr (Default: [])

Ausrichtung des Kolumneninhalts.

allowHtml => $bool|\@titles (Default: 0)

Erlaube HTML insgesamt oder auf den Kolumnen in @titles, d.h. ersetze die Werte der Kolumnen &, <, > nicht automatisch durch HTML-Entities.

empty => $str (Default: '&nbsp;')

HTML-Code, der im Body der Tabelle gesetzt wird, wenn die Liste der Elemente leer ist. Wenn auf Leerstring, undef oder 0 gesetzt, wird kein Body angezeigt.

rowCallback => $ref (Default: undef)

Referenz auf eine Subroutine, die für jedes Element die darzustellende Zeileninformation (für tr- und td-Tag) liefert.

rows => \@rows (Default: [])

Liste der Elemente. Für jedes Element wird die Callback-Methode (Attribut rowCallback) aufgerufen.

titles => \@titles (Default: [])

Liste der Kolumnentitel.

METHODS

new() - Konstruktor

Synopsis

    $e = $class->new(@attVal);

Description

Instanziiere ein Tabellenobjekt mit den Eingenschaften @attVal und liefere eine Referenz auf dieses Objekt zurück.

html() - Generiere HTML-Code

Synopsis

    $html = $e->html($h);
    $html = $class->html($h,@attVal);

Description

Generiere HTML-Code für Tabellenobjekt $e und liefere diesen zurück. Bei Aufruf als Klassenmethode wird das Tabellenobjekt von der Methode aus den Argumenten @attVal instanziiert.

VERSION

1.083

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2016 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.