Domino 9 und frühere Versionen > ND8: Entwicklung - XPages
Ordner- Navigation mit xPages
(1/1)
Tode:
Wahrscheinlich bin ich nur zu blöd zum suchen, aber ich finde tatsächlich nichts "vorgefertigtes" im Web:
Ich möchte auf der linken Seite eine Liste mit Ordnern haben, und beim Klick auf den Ordner rechts den Inhalt angezeigt bekommen (also klassich Notes).
Ich habe mal angefangen und recht schnell ein Ergebnis bekommen, indem ich mir dynamisch links generiere, die so aussehen:
folderContent.xsp?open&folder=Ordner1
folderContent.xsp?open&folder=Ordner2
In der xPage lese ich den URL- Parameter aus und benutze den als berechnete Quelle für meine Data Source.
Funktioniert alles, aber ist natürlich noch lange nicht schön:
Hauptproblem: Hierarchische Ordner müssten noch sauber "gegliedert" werden (mit auf und zuklappen am besten),
aktuell stehen einfach alle Ordnernamen bei mir flach untereinander:
Ordner1
Ordner1\Unterordner1
Ordner1\Unterordner2
Ordner2
Ich kann mir nicht vorstellen, dass das noch keiner gemacht hat, und trotzdem finde ich nix...
Jemand nen Tipp für mich?
Thanx
dizastar:
mahlzeit tode,
das könnte was für dich sein, Tree Xpage Control
MM85:
Hallo,
ich muss mal dieses alte Thema hervorkramen, da ich im Moment auch mit Folder in den xPages kämpfe. Wie kann ich denn die aktuell verfügbaren Ordner dynamimsch auslesen und als Link Liste anzeigen (hierarchisch muss vorerst noch gar nicht mal sein).
Danke!
Viele Grüsse
Martin
Sven Hasselbach:
Hier ein Code-Snippet, das alle Shared Folders einer DB ausliest und die Namen anzeigt:
--- Code: ---<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:repeat id="repeat1" rows="30" var="folder">
<xp:this.value>
<![CDATA[#{javascript:
/**
* check if folder is a shared one
*
* @param pFolder Folder object
* @return boolean true if folder is shared, else false
* @author Sven Hasselbach
* @category SSJS
* @category Tools
* @version 0.7
*/
function isSharedFolder( pFolder:NotesView ):boolean{
var isShared = false;
var doc:NotesDocument = null;
try{
doc = database.getDocumentByUNID(pFolder.getUniversalID());
if( doc.getItemValueString("$Flags") === "3PFY" )
isShared = true;
}catch(e){}
finally{
if( doc !== null )
doc.recycle();
}
return isShared;
}
var vList:java.util.Vector = database.getViews();
var v:NotesView = null;
var folders:java.util.Vector = new java.util.Vector();
for( var i=0; i<vList.size(); i++ ){
v = vList.get(i);
if( v.isFolder() === true ){
if( isSharedFolder( v ) )
folders.add( v );
}else{
v.recycle();
}
}
folders
}]]>
</xp:this.value>
<xp:label id="labelFolder" value="#{javascript:folder.getName()}" />
<xp:br />
</xp:repeat>
</xp:view>
--- Ende Code ---
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln