1

동적 열에 문제가 있습니다. 우리는 컬럼이 이전에 선택된 일부 필터에 의존하는 테이블을 가지고 있습니다. 페이지를 입력하면 연도 및 기타 기준을 선택할 수 있으며이 값을 사용하여 테이블을 렌더링합니다. 문제는 다른 기준을 선택할 때 열이 달라질 수 있으며 c : forEach가 너무 동적이기 때문에 이것이 문제라는 것입니다.c : forEach, ace : dataTable 및 IceSoft 위키 예제가있는 동적 열

당신이 IceSoft 위키에서 제공되는 예를 보면 당신은 우리가 (그러나 우리의 코드는 훨씬 더 복잡하다) 우리의 코드에있는 것과 비슷한 볼 수 있습니다 : 문제는이 문장과 함께 제공 http://www.icesoft.org/wiki/display/ICE/DataTable+Dynamic+Columns

:

<c:forEach items="#{backing.columns}" var="colModel"> 

backing.columns 정적이다. 그러나 요소의 수를 변경하면 "Column"List의 값이 Task 클래스의 속성과 일치하기 때문에이 예제에서는 의미가 없습니다. 그러나 List 대신 List를 인쇄하는 경우 여기에 설명 된 것처럼 문제가 있습니다.

component.getChildren().clear(); //component is of UIComponent type 

그러나 작동하지 않았다 : http://drewdev.blogspot.com.es/2008/08/cforeach-with-jsf-could-ruin-your-day.html

우리는 우리가 열을 변경할 때 구성 요소 목록을 다시 시도했습니다. 또한 PhaseListener에서 컨텍스트의 뷰 복원을 시도했지만 긍정적 인 결과는 얻지 못했습니다. 그리고 우리는 아이디어가 부족합니다.

어떤 생각 (또는 솔루션 : D)을 감상 할 수있다. 그리고 누군가 더 구체적인 코드가 필요하면 그냥 물어보십시오.

TIA.

PS :이 질문은 또한 ICEFaces 포럼 (http://www.icesoft.org/JForum/posts/list/0/21842.page#76787)에 게시하고, 내가 (있는 경우) 솔루션으로 두 곳 모두 업데이트됩니다. 우리가 IceSoft 포럼에서 제안 된 것 같은

답변

1

우리는 완전히 새로운 구성 요소 트리를 얻기 위해 동일한 페이지에 탐색을 리디렉션, 문제를 해결했습니다. 이를 위해 당신은 당신의 상태가 살아남을 수있는 콩에 있어야하지만, 우리의 뒷받침 콩은 일반적으로 볼 수 있기 때문에 이것은 문제가되지 않습니다. 이를 위해 c : foreach 뒤에 목록을 변경하는 valueChangeListener 메서드를 변경하고 작업 메서드를 사용했으며이 동작 메서드에서 페이지 재로드를 얻으려는 검색 규칙으로 null을 반환합니다.

자세히보기 : http://www.icesoft.org/JForum/posts/list/21842.page#sthash.sXtPazmS.dpuf