2016-05-12 5 views
2

Ich benutze ein XPages Tabbed Panel zum ersten Mal. Es funktioniert im Allgemeinen gut, aber ich habe einen langwierigen Prozess, der beim ersten Klick auf eine Registerkarte ausgeführt wird. Daher möchte ich einen clientseitigen, ausgelasteten Dialog anzeigen, den wir routinemäßig verwenden, wenn auf ihn umgeschaltet wird. Ich habe versucht, ein client-seitiges JS an den Ereignishandler des zugeordneten TabPanels anzuhängen (mit submit = "true"), aber das scheint nicht zu funktionieren. Es führt das clientseitige JS aus, wechselt jedoch nicht mehr zu den Registerkarten. (Ich gebe im clientseitigen Ereignishandler "true" zurück.) Gibt es einen anderen Ansatz, der funktionieren könnte? FYI, ich ging davon aus, dass ich am Ende meines langen Codes view.postScript (...) aufrufen konnte, um den besetzten Dialog zu entfernen.XPages: Zeige den Dialog, wenn TabPanel geklickt hat?

Wie bei meinen Fragen üblich, kann ich leider keinen Code eingeben, um das zu demonstrieren.

Danke, Reid

+1

Haben Sie versucht stattdessen djTabContainer/djTabPane verwenden? Siehe diese Antwort: http://stackoverflow.com/a/25260393/785061 –

+0

Ich war mir dessen nicht bewusst und meine Suche hier fand diese Frage nicht. Vielen Dank! –

+0

Seltsamerweise habe ich versucht, djTabContainer zu verwenden, aber eine Wiederholung innerhalb des djTabPane konnte nicht auf eine kritische viewScope-Variable zugreifen (sie war null). Das hat mit Tabbed Panel funktioniert, also ging ich darauf zurück. Ansonsten hätte es meiner Meinung nach gut funktioniert. –

Antwort

1

Ich benutze diesen Beitrag: http://xpagesera.blogspot.com/2012/05/add-ajax-loading-control-in-xpages-for.html

mit großer Wirkung für diese. Hier ist der Text der Post:

hinzufügen AJAX „Loading ..“ Kontrolle in XPages für Teil Updates

Dies ist ein zweistufiger Prozess:

  1. In folgenden Dojo Modulen auf Ihrem XPage .

    <xp:this.resources> 
    <xp:dojoModule name="extlib.dijit.ExtLib"></xp:dojoModule> 
    <xp:dojoModule name="extlib.dijit.Loading"></xp:dojoModule> 
    </xp:this.resources> 
    

  2. Fügen Sie die folgenden Zeilen in die Eventhandler Ihrer Button/Link, die für Teil-Aktualisierung verwendet werden soll:

    <xp:this.onStart><![CDATA[XSP.startAjaxLoading()]]></xp:this.onStart> 
    

Das ist alles!

Eine ähnliche „Bitte warten ..“ Dialog erscheint und wird die Seite erneut angezeigt werden, sobald der Teil-Aktualisierung abgeschlossen ist ..

+0

Ich bin vertraut mit dieser Art von Dingen für Buttons/Links. Das Hinzufügen eines Ereignishandlers zu ihnen ist sehr üblich. Meine Frage bezieht sich auf Registerkarten. Ich denke nicht, was Sie empfehlen, wird dort besser funktionieren als das, was ich versucht habe. Wenn ich einen Event-Handler hinzufüge, schaltet die Registerkarte nicht mehr um. Aber danke! –

+0

Dies sind die Event-Handler, die ich oben nicht einfügen kann (für jemand, der das sieht). Reid - Ich habe diese in die Klickereignisse der Tabs eingefügt und sie funktionieren lassen. –

+0

Danke, Brian, ich werde es dann versuchen. –

Verwandte Themen