XPage에서 선택한 항목을 기반으로 sessionScope 변수를 설정하는 네비게이터가 있습니다. 그런 다음 SwitchFacet에서이 값을 사용하여 여러 가지보기 중 하나를 표시했습니다. 그리고 이것은 잘 작동했지만, switchFacet은 모든 뷰에 대해 전체 트리를로드한다는 점을 이해했습니다. 여기서 dynamicContent 컨트롤은 선택한 패널의 트리만로드합니다. 그래서 나는 다음과 같은 코드를 사용하여 XPage (네비게이터는 panelAll의 onclick의 부분 refreesh을한다)에 panelAll 내부 dynamicContent에 컨트롤을 만든 :SessionScope 변수를 사용하여 DynamicContent 선택
<xp:panel id="panelAll" style="width:auto">
<xe:dynamicContent id="dynamicContent1">
getComponent("dynamicContent1").show(sessionScope.get("ssSelectedView");
<xp:this.facets>
<xp:panel xp:key="vwProfile">
<xc:ccProfileView></xc:ccProfileView>
</xp:panel>
<xp:panel xp:key="vwPending">
<xc:ccTransactionView></xc:ccTransactionView>
</xp:panel>
<xp:panel xp:key="vwAgentLog">
<xc:ccAgentView></xc:ccAgentView>
</xp:panel>
</xp:this.facets>
</xe:dynamicContent>
</xp:panel>
문제는 그들이 switchFacet와는 같은 전망은 변경하지 않는 것이있다 . sessionScope 변수 id가 올바르게 설정되어 있고 onClick 부분 새로 고침이 panelAll을 새로 고쳐야하고로드 할 다른 패널을 선택해야하지만 vwProfile보기 만 표시한다는 것을 알고 있습니다. 역동적 인 콘텐츠를 만들기 위해 내가해야 할 일이 있습니까?
은 내가 switchFacet이 방법으로 작업을했지만, 좀 더 효율적으로해야하기 때문에 나는이 dynamicContent로 이동,하지만 완전 새로 고침 중 하나를 정말 효율적으로 처리 될 것 같지 않습니다 생각했다. switchFacet과 렌더링 된 패널 간의 성능 차이에 대한 생각은? –
방금 두 개의 중간 규모 복잡한 응용 프로그램을 만들었습니다. 각 응용 프로그램은 하나의 XPage와 약 20-30 개의 사용자 지정 컨트롤을 가지고 있으며 부분 업데이트가있는 sessionScope 변수에 따라 렌더링됩니다. 일부 컨트롤에는 노트보기가 포함되고 다른 탭에는 많은 탭이있는 양식이 포함됩니다. 그것은 매우 빠르며 사용자에게 아주 좋은 경험입니다. –
동적 콘텐츠가 작동합니다. getComponent(). show를 네비게이터의 onClick으로 옮긴 다음 부분 새로 고침이 작동합니다. 내 onClick은 다음을 수행합니다. getComponent ("dynamicContent1"). show (context.getSubmittedValue()); \t return sessionScope.put ("ssSelectedView", context.getSubmittedValue()); –