2011-11-15 2 views
1

양식이 selectOneMenu이고 세 번째 "Visualizar todos los archivos"를 선택하면 <t:tree2>을 렌더링하고 싶습니다. 이 모든 것은 selectOneMenu에서 값이 변경 될 때 Ajax를 사용하여 구성 요소를 렌더링합니다.Tomahawk의 Ajax 렌더링 : tree2는 첫 번째 노드 만 렌더링하고 자식 노드는 확장되지 않습니다.

무슨 일이 벌어지는지는 트리의 맨 처음 노드 만 렌더링되고, 폴더 옆에있는 + 기호를 클릭하면 전혀 확장되지 않습니다. 나는 무엇을 놓치고

<h:form id="menuForm" enctype="multipart/form-data"> 
     <h:outputLabel for="option" value="Acciones disponibles: " /> 
     <h:selectOneMenu id="option" 
         value="#{uploadFile.option}"> 
      <f:selectItem itemLabel="Seleccione una opción..." itemValue="null" /> 
      <f:selectItems value="#{uploadFile.options}" /> 
      <f:ajax render="@form" execute="@form" /> 
     </h:selectOneMenu> 

     <h:panelGrid id="dataLoad" columns ="3" 
        rendered="#{uploadFile.option == 'Cargar información completa.' || 
           uploadFile.option == 'Cargar solo información errónea.'}"> 
      <h:outputLabel for="upfile" value="Archivo: " /> 
      <t:inputFileUpload id="upfile" 
           value="#{uploadFile.upFile}" /> 
      <h:panelGroup/> 
      <h:panelGroup/> 
      <h:commandButton value="Continuar" 
          onclick="return confirmation()" 
          action="#{uploadFile.upload}" /> 
     </h:panelGrid> 

     <h:panelGrid id="listFiles" columns="3" 
        rendered="#{uploadFile.option == 'Visualizar todos los archivos.'}"> 
      <t:tree2 id="tree" value="#{listFiles.treeRoot}" 
        var="node" varNodeToggler="t" > 
       <f:facet name="folder"> 
        <h:panelGroup> 
         <f:facet name="expand"> 
          <t:graphicImage value="images/folderOpen.png" 
              rendered="#{t.nodeExpanded}}" 
              border="0" /> 
         </f:facet> 
         <f:facet name="collapse"> 
          <t:graphicImage value="images/folderClose.png" 
              rendere="#{t.nodeExpanded}}" 
              border="0" /> 
         </f:facet> 
         <h:outputText value="#{node.description}" 
             styleClass="nodeFolder" /> 
        </h:panelGroup> 
       </f:facet> 
       <f:facet name="file"> 
        <h:panelGroup> 
         <h:commandLink action="#{listFiles.download(node.identifier)}"> 
          <t:graphicImage value="images/file.png" border="0" /> 
          <h:outputText value="#{node.description}" /> 
         </h:commandLink> 
        </h:panelGroup> 
       </f:facet> 
      </t:tree2> 
     </h:panelGrid> 
    </h:form> 

:

이 내 코드?

미리 감사드립니다.

+1

는'uploadFile' 빈의 범위는 어디까지입니까? ''둘 다'rendered' 속성에 오타가 있습니다. – BalusC

+0

UploadFile 빈은 ViewScoped입니다. (오타가 있는지 확인). – BRabbit27

+0

예, 실제로 작동하지 않는 것은 오타입니다. – BRabbit27

답변

1

코드에 오타가 있습니다. 다음과 같은 구성 요소의 rendered 속성을 참고 :

<t:graphicImage value="images/folderOpen.png" 
       rendered="#{t.nodeExpanded}}" 
       border="0" /> 

<t:graphicImage value="images/folderClose.png" 
       rendere="#{t.nodeExpanded}}" 
       border="0" /> 

그것은해야이 있었다 :

<t:graphicImage value="images/folderOpen.png" 
       rendered="#{t.nodeExpanded}" 
       border="0" /> 

<t:graphicImage value="images/folderClose.png" 
       rendered="#{t.nodeExpanded}" 
       border="0" /> 
관련 문제