다음 코드는 데이터베이스에서 목록을 반복하고 각 항목에 대한 데이터 테이블을 작성합니다. 각 항목에는 데이터 테이블에 표시 될 열 목록이 있습니다. 내가 겪고있는 문제는 composite 코드에서 p : columns의 value 속성이 두 번째로 호출 될 때 변경되지 않는다는 것입니다. 초기 열의 목록을 캐시하는 것 같습니다. 새로운 열 목록을 사용하도록 columns 태그를 재설정하는 방법이 있습니까?JSF Primefaces datatable, Columns 태그가 사용될 때 첫 번째 행의 첫 번째 셀이 이전 데이터 가능 값을 사용 중임
업데이트 두 번째 데이터 테이블은 첫 번째 셀의 첫 번째 행에 이전 데이터 테이블 행 값 이름을 사용하고있는 것으로 보입니다. 다른 모든 것은 괜찮습니다. 여기에 스크린 샷이 있습니다
두 번째 업데이트 두 번째 데이터 테이블의 두 번째 페이지로 이동 한 다음 첫 번째 페이지로 돌아 가면 깨진 셀이 이미지에서 원으로 그려지며 올바른 값.
세 번째 업데이트 아래 코드에서 나는 ui : repeat 태그를 사용하고 있습니다. 나는 또한 주요면을 사용했다 : accordian 태그와 그들은 둘 다 문제를 만든다. ui : repeat 태그를 c : forEach 태그로 변경하여 아래 이미지에서 문제를 해결했습니다. 필자가 아직 가지고있는 문제는 각 데이터 테이블에 탭을 동적으로 만들 수 있도록이 태그가 초심자 태그에 있어야한다는 것입니다. 내 문제는 데이터 테이블의 p : columns 태그에 있다고 생각했지만 현재는 ui : reat 또는 p : accordian 태그인데 값 = "# {myBeanList}"속성을 사용합니다.
<ui:repeat var="codetable" value="#{pc_Maintenence.codeMaintenenceTables}">
<util:maintenence_code pageBean="#{pc_Maintenence}" dataTableInfo="#{codetable}"
paginator="true" rows="10"/>
</ui:repeat>
위의 코드 util : maintenence_code에서 호출되는 합성 코드입니다.
<composite:interface>
<composite:attribute name="pageBean" required="true" />
<composite:attribute name="dataTableInfo" required="true" />
<composite:attribute name="paginator" type="java.lang.Boolean" />
<composite:attribute name="rows" />
</composite:interface>
<composite:implementation>
<p:panel id="pnl_doc_code_table">
<p:dataTable value=#{cc.attrs.pageBean.getDataTableList(cc.attrs.dataTableInfo.tableListName)}"
var="tblVar" paginator="#{cc.attrs.paginator}"
rows="#{cc.attrs.rows}" dynamic="true" cache="false">
<p:columns var="column" styleClass="columns" id="columns" value="#{cc.attrs.dataTableInfo.columns}">
#{tblVar[column.name]}
</p:columns>
</p:dataTable>
</p:panel>
</composite:implementation>
를 구축하고 자바 나 다음 C 태그를 추가하자 대부분 C.에서 구문을 상속 복합 코드, * F *는 의미 * 얼굴 *. – skuntsel
페이지 매김을 사용하는 두 번째 업데이트에서 설명한 것처럼 첫 번째 행의 첫 번째 셀은 올바른 값을 가져옵니다. 페이지 매김의 아약스 호출이 문제를 해결하고 페이지 새로 고침이 잘못된 값을 넣는 이유는 무엇입니까? 또한 두 개 이상의 데이터 테이블을 추가하고 잘못된 값은 항상 첫 번째 행의 첫 번째 셀에 있고 항상 데이터 테이블에서만 발생합니다. 현재 데이터 표 위. – Doug
그냥 제안 양식에 넣을 다음 이벤트가 실행될 때 데이터 테이블을 업데이트하십시오. – Farnsbert