2012-02-23 27 views
1

我有一個<af:commandLink>和一個<h:panelGrid>。該鏈接在網格之外。在網頁加載時,我在網格上保留rendered="false"。我在網格中還有另一個鏈接。所以這個鏈接不會被渲染,因爲網格沒有被渲染。單擊網格外部的鏈接時,我將設置rendered="true",因此網格內的鏈接也會呈現。有條件渲染的命令鏈接不會調用動作

現在,當我點擊網格內的鏈接時,該操作不會被調用。這是如何造成的,我該如何解決這個問題?

<af:commandLink action="#{masterFileConfig.getMasterFileTypeConfig}" onclick="return requiredCheck();" 
       binding="#{masterFileConfig.commandLink1}" 
       id="commandLink1"> 
    <af:objectImage source="/images/search.gif" 
        binding="#{masterFileConfig.objectImage1}" 
        id="objectImage1"/> 
</af:commandLink> 
<h:panelGrid columns="2" binding="#{masterFileConfig.panelGrid2}" rendered="#{masterFileConfig.showGrid}" 
      id="panelGrid2" width="100%" styleClass="greyTable"> 
    <h:panelGrid columns="1" border="0" 
       id="panelGrid3" width="100%" style="text-align:right;"> 
     <af:commandLink action="#{masterFileConfig.saveMasterFileTypeConfig}" 
         onclick="return handleBusinessRules();" 
         id="commandLink2"> 
      <af:objectImage source="/images/save.gif" id="objectImage2"/> 
     </af:commandLink> 
    </h:panelGrid> 
</h:panelGrid> 
+1

[如何調用有條件呈現的UICommand組件的動作方法?](http://stackoverflow.com/questions/3045129/how-to-call-an-action-method-of- a-uicommand-component-which-rendered-conditi) – BalusC 2012-02-23 12:35:44

+0

感謝Balus。您可以詳細說明您的意見:3.如果您使用而不是,則可以使用來傳輸屬性。它將作爲請求參數提供,你可以在bean的(post)構造函數中檢查它。 可能的代碼示例會有很大的幫助。 – user265950 2012-02-23 18:27:44

+0

感謝Balus ..我用了下面的東西之一的用戶和它的工作 - >在我的情況下,JavaScript來搶救,這意味着,無論有條件地顯示,把他們在一個HTML部分,不要顯示它們顯示:無,直到發生期望的事件。 HTML部分可以有任何JSF標記(包括CommandButtons),只要你願意並且可以工作(調用動作方法和東西)就可以。 – user265950 2012-02-24 08:51:29

回答

0

你可以嘗試並將鏈接的clientComponent屬性設置爲true嗎?也許沒有爲onClick事件生成客戶端組件來與之交互。

另外 - 你有沒有考慮使用af:commandImageLink而不是兩個組件?