Dieser Thread ist zwar schon etwas älter, aber da ich bei einem aktuellen Projekt erneut eine Blätternfunktion in einer Listview brauchte, möchte ich meine Lösung hier gerne vorstellen.
Ich habe für die we4 nun einen eigenen Tag
<we:listviewNavigation /> geschrieben, der viele (von mir benötigten)Fälle abdeckt.
Erzeugt wird eine formatierbare Navigation für eine Listview.
Dabei können es einfache Links direkt hintereinander (type="link"), Listenelemente (type="list") oder Tabellenzellen sein (type="table").
Eine StandardNavigation kann simple eingebaut werden:
Code: Alles auswählen
<we:listview [...]>
<we:listviewNavigation />
<we:repeat>
</we:repeat>
</we:listview>
Eine Liste z.B. so:
Code: Alles auswählen
<we:listview [...]>
[LIST]<we:listviewNavigation type="list" />[/LIST]
<we:repeat>
</we:repeat>
</we:listview>
Eine Navigation der Art
1 - 10 | 11 - 20 | 21 - 30 kann man z.B. so erreichen:
Code: Alles auswählen
<we:listview [...]>
<we:listviewNavigation pageFormat=":start: - :end:" title="gehe zu Seite :#:" pastPage=" | " />
<we:repeat>
</we:repeat>
</we:listview>
Folgende Paramter stehen zur Verfügung:
type
Werte: link|list|table
Standard: link
Typ der Ausgabe
circle
Werte: true|false
Standard: false
Bei True wird eine "kreisförmige" Navigation aufgebaut. Es gibt also kein Ende, sondern am Schluss wird wieder ein Link zur ersten Seite angehängt.
range
Werte: numerisch
Standard: 0 = alle
Legt fest, wie viele Seiten vor/nach der der aktiven Seite angezeigt werden sollen. Leer oder 0 zeigt alle Seiten an
prePage
Werte: beliebiger Text
Der hier eingegebene Text wird mit Ausnahme der ersten Seite vor jeder Seite ausgegeben.
pastPage
Werte: beliebiger Text
Der hier eingegebene Text wird mit Ausnahme der letzten Seite nach jeder Seite ausgegeben.
preFirstPage
Werte: beliebiger Text
Der Text wird vor der ersten Seite angezeigt
pastLastPage
Werte: beliebiger Text
Der Text wird nach der letzten Seite angezeigt
title
Werte: beliebiger Text
Der Text wird als Title der einzelnen Seitenlinks angezeigt.
:#: wird bei der Ausgabe durch die Seitennummer ersetzt.
:start: wird bei der Ausgabe durch die Nummer des ersten Eintrags dieser Seite ersetzt
wird bei der Ausgabe durch die Nummer des letzten Eintrags dieser Seite ersetzt
digits
Werte: numerisch
Legt die Anzahl der Stellen für die Seitenzahl fest.
Damit kann z.B. eine führende Null bei einstelligen Seitenzahlen ausgegeben werden.
fillChar
Werte: beliebiger Text
Standard: 0
Legt das Füllzeichen fest, mit dem Seitenzahler mit weniger als digits Stellen aufgefüllt werden. Wird nur berücksichtigt, wenn digits > 0 angegeben wurde.
link_activePage
Werte: true|false
Standard: true
Legt fest, ob die aktive Seite verlinkt werden soll
style
Werte: beliebiger Text
Styleangaben für [*]/<td> Tags. Wird nur bei type="list" oder type="table" genutzt.
activePageStyle
Werte: beliebiger Text
Styleangaben für [*]/<td> Tags der aktiven Seite. Wird nur bei type="list" oder type="table" genutzt.
class
Werte: beliebiger Text
class für [*]/<td> Tags. Wird nur bei type="list" oder type="table" genutzt.
activePageClass
Werte: beliebiger Text
Class für [*]/<td> Tags der aktiven Seite. Wird nur bei type="list" oder type="table" genutzt.
link_style
Werte: beliebiger Text
Styleangabe für den Hyperlink zu einer Seite.
link_activePageStyle
Werte: beliebiger Text
Styleangabe für den Hyperlink zu der aktiven Seite
link_class
Werte: beliebiger Text
Class für den Hyperlink zu einer Seite
link_activePageClass
Werte: beliebiger Text
Class für den Hyperlink zu der aktiven Seite
pageFormat
Werte: beliebiger Text
Format der einzelnen Seitenangabe.
:#: kann als Platzhalter für die Seitennummer genutzt werden.
"Seite :#:" gibt dann z.B. "Seite 1", "Seite 2" usw. aus.
:start: wird bei der Ausgabe durch die Nummer des ersten Eintrags dieser Seite ersetzt
wird bei der Ausgabe durch die Nummer des letzten Eintrags dieser Seite ersetzt
singlePage
Werte: true|false
Standard: true
Legt fest, ob eine Ausgabe erfolgt wenn nur eine Seite vorhanden ist.
In der Zip Datei sind die benötigten Dateien, einmal für den TagWizzard und einmal der Tag selbst mit den richtigen Pfadangaben enthalten. Einfach in die entsprechenden webEdition Verzeichnisse kopieren und testen.
Ich habe das ganze natürlich getestet und denke, dass es keine Fehler hat, kann das aber nicht garantieren.
Vielleicht kann der eine oder andere mit dem Tag ja etwas anfangen, solange es noch keine we-eigene Lösung gibt.
Wenn ihr noch Verbesserungsvorschläge oder Anregungen habt, versuche ich sie gerne einzubauen.
Update am 31.07.2006:
Mit ":start:" und "
" stehen in title und pageFormat nun auch Platzhalter für die jeweiligen Eintragsanzahl einer Seite zur Verfügung. Damit ist eine Navigation der Art 1-10 | 11-20 | 21-30 usw. möglich.
Ein Fehler bei type="circle" behoben.
Update am 04.08.2006:
Fehler bei der Style/Class Zuweisung der aktiven Seite behoben.
Update am 20.01.2008:
Neuer Parameter singlePage hinzugefügt. Wenn bei einer Listview nur eine Seite gefunden wird, kann so die Ausgabe von listviewNavigation unterdrückt werden.
Update am 04.05.2009:
Fehler im Zusammenhang mit dem Paramter preFirstPage behoben > preFirstPage wird nun nicht mehr doppelt angezeigt
Fehler bei der Darstellung als Liste/Tabelle behoben > die einleitenden li/td werden nun auch geschlossen
Update am 09.12.2010:
Fehler im Zusammenhang mit singlePage behoben
Fehler beim Schließen öffnender li/td Tags behoben
Kompatibilität zu webEdition 6.1.0.6 > aufrufe von we_tags dürfen nur noch per we_tag() erfolgen. > Alle Aufrufe geändert.