2012-08-13 1 views
0

Visualex 페이지에 표준 apex : datatable의 파악 범위를 벗어난 것으로 보이는 일부 기능을 사용하여 HTML 테이블을 설정했습니다. 사용자가 행 중 하나에 대한 정보를 업데이트 할 때 테이블을 다시 렌더링하여 업데이트 된 값을 반영하려고합니다. apex : datatable을 사용하면 잘 작동하지만 테이블에 추가해야하는 많은 기능을 잃어 버릴 수 있습니다. apex : actionFunction 비 시각력 컴포넌트에서 다시 렌더링

구조

은 매우 간단하지만이 어떻게되는지입니다 :

이 본질적으로 그 아래에 나열된 부모 개체의 아이들과 내가 달성하기 위해 노력하고있어 기능입니다
<table> 
     <thead> 
      <tr> 
       <th>Col 1</th> 
      </tr> 
     </thead> 

     <tbody> 
     <apex:outputPanel id="table-panel"> 

      <apex:repeat value="{!Parent}" var="row"> 
       <tr name="{!row.Id}"> 
        <td>Cell 1</td> 
       </tr> 
       <apex:repeat value="Child__r" var="child"> 
        <tr name="child-{!row.Id}"> 
         <td>Child Cell 1</td> 
        </tr> 
       </apex:repeat>  
      </apex:repeat> 
     </apex:outputPanel> 
     </tbody> 

    </table> 

. 지금 당장 rerender는 모든 테이블 요소를 스팬으로 변환하고 모든 것을 완전히 비 웁니다. 비주얼 보이스 컴 포넌트를 다시 렌더링 할 수 있습니까, 아니면, 꼭이 기능을 꼭대기에서 재현 할 수있는 방법이 있습니까 : 데이터 테이블?

감사합니다.

+0

"테이블 패널"을 다시 대여해도 문제가 없습니다. – mast0r

답변

0

실제로 apex : outputPanel 요소의 멋진 "layout"속성을 발견했습니다. 이것을 "차단"으로 설정하면 이와 관련된 모든 문제가 완전히 해결되었습니다.

0

쉽습니다. 다시 시도해도 다시 시도해도 괜찮습니다.

<apex:panelGrid columns="1" width="400" id="myTable"> 

    <apex:facet name="header"> 
     <apex:outputText value="My table header"/> 
    </apex:facet> 

    <apex:repeat value="{!Object}" var="row"> 

     <apex:outputText value="{!row.name}" style="display:block;font-weight:bold;"/> 

     <apex:repeat value="{!row.ObjectChild__r}" var="child"> 

      <apex:outputText value="{!child.name}"/> <br/> 

     </apex:repeat> 

    </apex:repeat>   

</apex:panelGrid> 

아니요, "myTable"을 다시 렌더링 할 수 있습니다.

+0

확실히 흥미로운 점은 하나 이상의 열을 추가하면 어떻게 될까요? 필자는 정확히 12 개가 있어야한다. 헤더에서 옵션없이 TD로 렌더링되어야한다. – jsfdev01

관련 문제