2013-01-10 7 views
0

Xpages에서 "계산 된 하위 양식"을 생각해보십시오.사용할 사용자 지정 컨트롤을 계산할 수 있습니까?

특정 값에 따라 사용자 지정 컨트롤 중 하나에서 콤보 상자를 사용하여 드롭 다운 목록을 렌더링하는 사용자 지정 컨트롤을 표시하거나 선행 입력으로 입력 상자를 렌더링하려고합니다.

이 문서보다는 디자인에 의해 처리되는 모든 뷰 구성 선택으로, 뷰를 렌더링하는 사용자 지정 컨트롤에, 그래서 여러 가지 뷰는 동일한 사용자 지정 컨트롤을 사용합니다.

는 예를 들어 I는 제 열로 상태가 맞춤 제어를 사용함으로써, 상태보기를 우리는 사용자에 의해 필터링 된 상태 값을 선택할 수 있도록 콤보를 사용한다. 또 다른보기는 요청 번호별로 정렬되어 있으며 콤보 상자 대신 입력 전을 사용하고 싶습니다.

내 환경 모두에 대해 동일한 동적 뷰 맞춤 제어를 사용하여 두 개의 (또는으로 comboBox에 InputText) 중 어느 것이 사용하도록 결정하는 수식을 가지고있다. 로드 할 사용자 정의 컨트롤을 어떻게 계산합니까?

(동적 뷰 컨트롤에 대한 신용 Teamworks 솔루션에서 스콧 좋은의 사람들까지 간다.) 그것의 수명주기 동안

답변

5

, XPage이 두 장소에 존재합니다. 우선 XPage의 관련 구성 요소 표현은 서버에 저장됩니다. 그런 다음 페이지는 라이프 사이클을 거치고 문서에서 속성을 검색하고 렌더링 할 구성 요소를 확인하고보기 패널 등의 반복되는 컨트롤에 대한 데이터를 검색 한 다음 관련 HTML을 브라우저에 전달합니다. 브라우저가 존재하는 두 번째 장소입니다.

그래서 사용자 지정 컨트롤을 계산할 수 없습니다. 수행 할 수있는 작업은로드 된 속성을 설정하는 것입니다.로드는 viewScope 변수, 현재 XPage 이름, XPage에 저장된보기 이름 등과 같은 비 동적 계산을 기반으로해야합니다. 어려움을 겪는 것이 해당 행 항목의 데이터를 기반으로 다른 사용자 정의 컨트롤을 사용합니다.

다른 옵션은 확장 라이브러리에서 동적 콘텐츠 컨트롤 또는 스위치 컨트롤입니다. 두 가지 모두 사용자 정의 컨트롤을 페이지에두고 표시 할 항목을 선택한다는 점에서로드 된 속성을 사용하는 것과 비슷합니다.

로드 된 속성은 필요한 것을 설명해야합니다.

1

수식을 기반으로 한 pageName 속성을 사용하여 사용자 지정 컨트롤을 포함하려면 페이지 컨트롤 포함 (xp:include)을 사용했던 this question on StackOverflow을 다시 보았습니다. pageName의 속성은 또한 페이지로드 계산 그의 대답에 폴 위더스에 의해 기술 된 방법과 유사하게

<xp:include> 
    <xp:this.pageName><![CDATA[${javascript:sessionScope.ccPageName + ".xsp";}]]> </xp:this.pageName> 
</xp:include> 

.

관련 문제