2012-08-08 53 views
1

我知道對於具有widgetVar屬性的PrimeFaces組件,我可以使用p:widgetVar('myComponentId')獲取從組件的ID派生的widgetVar。如果<p:remoteCommand/>存在相同類型的功能將會很好,因此我可以使用<p:remoteCommand/>的同一類型複合組件的多個實例。我最初嘗試了widgetVar函數,但後來意識到它不起作用。爲PrimeFaces remoteCommand生成並使用唯一的名稱

<p:remoteCommand id="previousCycleCommand" 
       actionListener="#{cc.selectPreviousCycle()}" 
       update=":#{cc.clientId}:updateable" 
       partialSubmit="false"/> 

<p:button id="previousCycleButton" 
      icon="ui-icon-circle-triangle-w" 
      onclick="#{p:widgetVar('previousCycleCommand')}();"/> 

是否有任何PrimeFaces功能可用於從完全擴展的ID派生遠程命令的名稱?

回答

0

如何使用當前客戶端ID創建唯一ID?由於每個複合組件都應該是唯一的命名容器,因此連接的ID也應該是唯一的。

<p:remoteCommand id="#{cc.clientId}_previousCycleCommand" 
      actionListener="#{cc.selectPreviousCycle()}" 
      update=":#{cc.clientId}:updateable" 
      partialSubmit="false"/> 

<p:button id="previousCycleButton" 
     icon="ui-icon-circle-triangle-w" 
     onclick="#{cc.clientId}_previousCycleCommand();"/> 
+0

這問題是'#{cc.clientId_previousCycleCommand()}'是不能保證是有效的JavaScript標識符,特別是在所述複合部件是命名容器內實例化的情況。我想我可以爲此製作自己的'p:widgetVar'類方法。 – 2012-08-09 00:02:13

+0

哦,對不起。你是對的。除此之外,我完全搞砸了remoteCommand的id和name屬性。 – 2012-08-09 12:06:31