2010-02-04 3 views
2

'onclick'에 응답하는 HTMLPanelGrid 및 HTMLAjaxSupport (a4j : backing bean 지원)를 사용하여 버튼을 만들었습니다.a4j : support를 사용하여 클릭 후 페이지를 새로 고침하지 않고도 클릭 할 수있게합니다.

HTMLAjaxSupport에 등록 된 이벤트 수신기는 페이지 (다른 백킹 빈을 가진 다른 구성 요소)에 구성 요소를 추가합니다.

문제는 페이지를 새로 고치거나 디스플레이를 새로 고치는 다른 버튼을 누르기 전에 추가가 표시되지 않는다는 것입니다. 페이지를 새로 고치는 방법을 찾으려고합니다.

요약하자면, 저는 뒷받침 빈이 변경된 후 백업 빈에 의해 백업 된 시각적 구성 요소를 새로 고치는 방법을 알고 싶습니다. (새로 고침은 ajax가 지원되는 구성 요소를 클릭 한 후 이루어져야합니다.)

고마워요!

답변

3

모두 <a4j: 태그는 reRender 속성을가집니다. 새로 고치려는 객체/영역의 id을 가리켜 야합니다.

구성 요소가 숨겨져있는 경우 부모을 다시 렌더링해야합니다. 예를 들어 :

<h:panelGroup id="newComponentWrapper"> 
<!-- your component goes here --> 
</h:panelGroup> 
... 
<a4j:support reRender="newComponentWrapper" .. /> 

그리고 또 다른 조언 - binding 속성을 사용하지 마십시오 - 당신이 그것없이 갈 수있는 경우 95 %에서.

+0

고마워요! 바인딩 속성 정보 - 구성 요소없이 동적으로 구성 요소를 추가 및 변경하려면 어떻게해야합니까? (이것이 현재 바인딩을 사용하는 가장 큰 이유입니다) – Ben

+1

컴포넌트에'rendered = "# {condition}'을 사용하고, 조건을 변경하고 reRender – Bozho

관련 문제