2016-09-29 1 views
0

Ich habe eine p: dataTable mit einigen Spalten, die p: outputLabel-Komponenten enthalten. Ich möchte p: Ajax-Funktionalität hinzufügen, so dass, wenn der Benutzer auf das outputLabel klickt, ich einen serverseitigen Prozess aufrufen kann, um etwas zu tun - im einfachen Fall würde es einige Informationen sammeln und in einem Dialog anzeigen.Kann eine p: ajax-Komponente mit p: outputLabel verwendet werden?

Ich bin auf der Suche nach so etwas wie diese

<p:outputLabel value="#{term.explanation}" > 
     <p:ajax event="click" listener="#{backingBean.myListener}" /> 
    </p:outputLabel> 

Offensichtlich funktioniert dies nicht, so dass ich mich gefragt, ob jemand könnte in der Lage sein, mir zu geben einen Hinweis, wie ich so etwas wie diese zu bekommen. Die Einschränkung besteht darin, dass die dataTable die p: outputLabel-Komponenten behalten muss - sie brauchen nur einen Weg, um sie zu ajaxifizieren.

Vielen Dank im Voraus. Dave J.

+0

@Kukeltje sorry .. ich Ihren Kommentar gerade jetzt zu sehen. Ich schrieb bereits meine Antwort. –

+0

Kein Problem. Ich bin nicht in der Lage, eine vollständige Antwort in den kommenden Tagen zu schreiben. 3 Tage Golf in Delden. Nur Zugriff auf/auf meinem Mobiltelefon. Also nur kurze Kommentare (wie immer ;-)) – Kukeltje

+0

Der Remote-Befehl konnte nicht im Kontext einer Datatable-Spalte funktionieren, aber die Befehlsverknüpfungsoption funktioniert. Danke für die Rückmeldung. – DJarz

Antwort

0

Try

<p:commandLink actionListener="#{backingBean.myListener}""> 
     <p:outputLabel value="#{term.explanation}" > </p:outputLabel> 
</p:commandLink> 
+0

Dies wird einen Link (und seinen Stil und Verhalten) zu Ihrem HTML hinzufügen –

+0

Dies tut den Job, wenn Sie hinzufügen, um die Unterstreichung zu unterdrücken style = "text-decoration: none". – DJarz

0

benutzen zu können Sie p:remoteCommand hier nutzen könnten. Sie können damit Backing-Bean-Methoden mit JavaScript ausführen. Zum Beispiel:

<p:remoteCommand name="onLabelClick" 
       actionListener="#{backingBean.myListener}"/> 
<p:outputLabel value="#{term.explanation}" 
       onclick="onLabelClick()"/> 

Wenn Sie die spezifischen p:outputLabel wissen zu können, die geklickt wurde Sie Parameter p:remoteCommand und verwenden #{component.clientId} als Wert hinzufügen können. auch

Siehe:

Verwandte Themen