XPages Computed Custom Control

  • Halllo liebe Comunity,


    ich hab folgendes Problem. Ich möchte ein XPages Template erstellen in dem man ein Top-Menü + Submenü hat.


    Ich möchte nur 1 XPage pro Top-Menü-Link haben.


    Sprich wenn ich auf den ersten Tab im Top Menü klicke, wird die XPage von Top-Menü 1 geladen.


    Diese XPage enthält entsprechendes Submenü (Custom Control) und ein Contentbereich ( Custom Control ).


    Wenn ich jetzt auf Submenü-Link 2 klicke, soll nicht die nächste XPage geladen werden, sondern einfach nur der Contentbereich ( Custom Control ) durch das entsprechende ersetzt werden.


    Ich hoffe, dass ich es ein wenig einleuchtend erklären konnte.


    Ich möchte deshalb nicht so viele XPages verwenden, weil die Application sonst zu unübersichtlich wird. Ich habe ca. 100 Content (Custom Controls) und dann brauch ich ja pro Content jeweils nochmal 1 XPage = 100 XPages. Leider kann man bei Domino Designer keine Ordner erstellen um zu mindestens die Chance zu haben es zu ordnen.


    Ich hab ein paar Ansätze gefunden, aber ich weiß nicht wie ich es umsetzen soll:


    1.
    Very simple technique:
    You need to know, that "include page" control could include not only page elements, but also custom control elements, but you should write then by Your hands.
    So @1st create a repeater on page.
    Then add include page control in repeater.
    As repeater values set array of controls to add ex. ["ccontrol1.xsp", "ccontrol2.xsp",...]
    use those values to compute page.


    2.
    Alle Custom Controls einbinden und die Visibility auf true setzen. Aber werden dann alle Custom Controls bei dem Seitenaufruf geladen?


    Ich suche jetzt schon mehrere Tage nach einer Lösung, aber ich konnte leider nix richtiges finden und als Neuling bei XPages macht das Ganze auch nicht leichter. Ich hoffe ihr könnt mir weiterhelfen.


    mfg. Bigtieger

  • Also ich würde es so wie unter 1. beschrieben machen.
    Wo ist denn da dein Problem damit bzw was verstehst du an der Beschreibung nicht ?


    [color=FF0000]Bitte auch aufs Themenpräfix achten[/color]

  • Ich verstehe wie ich damit eine Computed XPage laden kann, aber nicht wie ich damit ein Custom Control lade?


    Code
    <xp:repeat id="repeat1" rows="1"> 
    <xp:include pageName='${java...:"test_IncludeControl.xsp"}' id="include1"> </xp:include> 
    </xp:repeat>


    Ich hab das Wort "javascript" durch java... ersetzt.


    Ideal wäre es, wenn du mir ein Code Beispiel geben könntest.


    mfg. Bigtieger

  • Ich selbst loese dieses Problem mit folgenden Elementen :


    - Eine Auswahlbox mit den Namen der gewuenschten Sub-Elementen (meineSub1.xsp, meineSub2.xsp, meineSub3.xsp)
    - Die Auswahlbox ist gebunden auf eine sessionScope-Variable (z.B. sessionScope.subName)


    - Include Page-Element, der Name der Seite ist berechnet - JavaScript : sessionScope.subName (Also die oben definierte sessionScope-Variable)


    - Custom Controls mit den entsprechenden Inhalten (also meineSub1.xsp, meineSub2.xsp...)


    Damit es funktioniert, muss die Seite nach dem setzen der Variablen neu geladen werden, daher ist bei der Auswahlbox im "OnChange"-Event folgender JavaScript-Code :
    "context.reloadPage()", damit wird nach der Auswahl des Seitennamens die Komplette Seite neu geladen + das CC im Bereich dargestellt


    Funktioniert bei mir ohne Probleme, man muss nur daran denken, den SessionScope korrekt zu verwalten und beim oeffnen des Dokumentes muss man den sessionScope halt auch manuell setzen, sonst kommt der Anzeigebereich nicht.