Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Driri am 17.12.04 - 12:24:28
-
Hallo,
ich bastele an einer Webanwendung herum und habe mir die Views jetzt über HTML erzeugt (da gabs nen prima Artikel zu bei Codestore).
Der Vorteil ist schon mal ganz klar, daß die View erstens ziemlich fix ist und zweitens kein JavaApplet zum Einsatz kommt.
Jetzt habe ich aber das Problem, daß in der View mehr als 3000 Dokumente sind und das seitenweise Navigieren nicht gerade angenehm ist.
Da es sich um eine Personenliste handelt, habe ich mir gedacht, evtl. kann man für die Anfangsbuchstaben der Nachnamen Anchor verwenden, die ich dann über Links direkt anspringen kann.
Ist das möglich ? Hat das schon mal jemand realisiert ? Wenn ja, wie ?
Oder gibts Alternativen ?
P.S. : Bin absoluter JavaScript-Newbie, ne pure HTML-Lösung wäre für mich erstmal das einfachste.
-
Hallo,
ich habe da mal von searchdomino was in der Richtung gezogen.
Vielleicht hilft Dir das ja.
Alphabet View Index For Website
Mike VandeVelde
03 Mar 2000
Rating: -4.00- (out of 5)
On a lot of websites which have lists, you see the alphabet off to the side and
clicking on a letter will take you to the first element in the list starting
with that letter. This is much more user friendly than the default view
navigation links provided by Domino. You could write out the alphabet, and make
each letter a URL link into a view using StartKey to start at the proper
position, but that's time consuming and what happens if there is no entry
starting with that letter? Try putting this code into computed text to generate
the alphabet on the fly, only including letters that are present in the list:
(We have this as the left frame of a frameset, thus the 'target='. I'm sure it
would work just as well simply at the top of a page without the 'target='.)
Code
ExistingLetters := @Unique( @Left( @DbColumn( "":""; "":""; "ViewName"; 1 ); 1
) );
@Implode( "<a href=\"ViewName?openview&startkey=" + ExistingLetters + "\"
target=\"Main\">" + ExistingLetters + "</a>" )
Viele Grüße
Andreas
-
wenn ich das richtig verstanden habe, dann brauchst du in der Ansicht eine kategorisierte Spalte, die den Anchor anzeigt.
Und dann brauchst du noch eine $$ViewTemplate for ViewXYZ - Maske, in der du die Liste der Links zu den einzelnen Anchors baust (ob mit Formel oder zu Fuß spielt von der Funktionalität her keine Rolle)
diese Methode funktioniert natürlich nur, wenn du alle Anchors, die du anspringen willst, auf einer Seite anzeigst.
Wenn nicht, dann wirds glaube ich etwas komplizierter. aber auch nicht so wild, hoffe ich.
Dann würden die Links in deiner Liste nicht zu einem Anchor springen lassen, sondern einen Agent aufrufen, der die URL zusammenbaut, an der das erste Dokument mit dem jeweiligen Buchstaben zu finden ist
www.xyz.nsf/xyz?OpenView&Start=537
wobei 537 eben die Stelle in der Ansicht ist, wo das erste Dokument mit dem gewünschten Buchstaben auftaucht
Vielleicht reicht dir das schon als Idee. Vielleicht gibts auch noch andere Wege. Das sind die, die mir zuerst eingefallen sind und die ich selber schon verwendet habe
-
Mit einer solchen URL ist es auch möglich alle Einträge auf einer Seite anzuzeigen:
http://www.openntf.org/projects/codebin/codebin.nsf/CodeByDate!OpenView&start=1&count=7777
(s. Start und Count Parameter)
-
Hallo,
erstmal danke für die Tipps. Ich werde mal Andreas Tipp ausüprobieren, der klingt recht interessant und vor allem scheint das mit geringem Aufwand realisierbar zu sein.
Die URL-Parameter kenne ich, umgehen die dann auch die Restriktionen, die man im Serverdokument für den HTTP festlegt ?
-
Hi,
ich habe den Tipp von Andreas jetzt mal ausprobiert und das ist genau das, was ich gesucht habe. Wunderbare Sache, danke nochmal :-)
-
Die URL-Parameter kenne ich, umgehen die dann auch die Restriktionen, die man im Serverdokument für den HTTP festlegt ?
Ja. Genau dafür sind die da.
-
Ah, danke. Wieder was gelernt :D
-
oh, den StartKey-Parameter kannte ich nicht bis heute. Das ist gut zu wissen
-
Hi,
doch nochmal ne Rückfrage zum Parameter count.
Trotz Verwendung des Parameters bekomme ich maximal die Anzahl Zeilen geliefert, wie sie im Serverdokument definiert sind.
Kann es sein, daß die Einstellung des Serverdoks da doch Vorrang hat ?
-
Eigentlich nicht. Da bin ich mir im Prinzip sehr sicher.
Kannst du mal den Link posten.
Ach so. Ausserdem glaub ich der count Wert darf nicht größer als 9999 sein (irgendwas war da).
-
Hi,
sorry für die späte Rückmeldung, war im Urlaub ;D
Nen Link kann ich nicht posten, liegt auf nem internen Server, count hab ich auf 5000 gestellt, sollte also nicht das Problem sein.
Im Serverdokument ist die Grenze auf 1000 gesetzt, das entspricht auch so in etwa der Anzahl an angezeigten Dokumenten in der View.
-
Hallo,
das ist eine super klasse Sache mit den Buchstaben und funktioniert ja wirklich richtig einfach.
Jetzt hätte ich nur eine Frage. Wie mache ich es, dass sich nicht ein neues Fenster öffnet sondern zu dem Buchstaben gesprungen wird, allerdings im gleichen Fenster?
Viele Grüße
-
Du mußt im Frameset als Ziel den entsprechenden Frame angeben.
-
danke hat funktioniert. Ich habe einfach target=" " gelassen, dann funktioniert es auch, da ich keinen Frame habe...
Einen schönen Tag noch!