2016-09-29 60 views
0

我有一個包含p:outputLabel組件的列的p:dataTable。 我想添加p:ajax功能,這樣如果用戶單擊outputLabel,我可以調用服務器端進程來做一些事情 - 在簡單情況下它會收集一些信息並在對話框中顯示它。p:ajax組件可以與p:outputLabel一起使用嗎?

我正在尋找這樣的事情

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

顯然,這是不行的,所以我想知道,如果有人也許能夠給我我怎麼能得到這樣的提示。約束條件是dataTable需要保留p:outputLabel組件 - 只需要一些方法來對它們進行ajax化即可。

在此先感謝。 戴維J.

+0

@Kukeltje抱歉..我看到你的評論剛纔。我已經在寫我的答案。 –

+0

沒問題。我無法在未來幾天寫出完整的答案。在德爾登打3天的高爾夫球。只能訪問/在我的手機上。所以只有簡短的評論(像往常一樣;-)) – Kukeltje

+0

無法讓遠程命令在數據表列的上下文中工作,但命令鏈接選項有效。感謝您的反饋。 – DJarz

回答

0

嘗試使用

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

這會將鏈接(及其樣式和行爲)添加到您的HTML –

+0

如果您添加style =「text-decoration:none」來抑制下劃線,則可以執行此作業。 – DJarz

0

你可以使用p:remoteCommand這裏。您可以使用它來使用JavaScript執行backing bean方法。例如:

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

如果你需要能夠知道被點擊就可以參數添加到p:remoteCommand和使用#{component.clientId}作爲值的具體p:outputLabel

參見:

相關問題