2012-04-10 4 views
0

누군가가 xpages의 datacontexts에 문제가 있음을 확인했습니다. 특정 시나리오에서 여러 개의 사용자 지정 컨트롤이있는 단일 xpage는 단일 페이지로드 중에 datacontext가 12 번 평가되는 결과를 낳습니까 ?? 다른 데이터 소스에서도 이러한 현상이 발생합니까?여러 번 실행되는 DataContext

다음은 3 회 실행되는 간단한 예입니다!

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" 
    xmlns:xe="http://www.ibm.com/xsp/coreex"> 
    <xp:this.dataContexts> 
     <xp:dataContext var="doc1"> 
      <xp:this.value><![CDATA[#{javascript:var doc:NotesDocument = database.createDocument(); 
doc.replaceItemValue("Form", "frmContact"); 
doc.replaceItemValue("fldFirstName", "test"); 
print("got here"); 
return doc;}]]></xp:this.value> 
     </xp:dataContext> 
    </xp:this.dataContexts> 
    <xp:inputText id="inputText1" value="#{doc1.fldFirstName}"></xp:inputText> 
</xp:view> 

내 응용 프로그램에서 dataContexts를 사용하지 않아야합니까?

답변

1

또한 부분 새로 고침을 사용하는 경우주의하십시오. 데이터 A 텍스트는 ID B에 있으며, ID A의 새로 고침을 수행한다고 가정 해 봅시다. ID B의 datacontext도 새로 고쳐집니다. 다른 모든 데이터 소스에도 발생합니다.

여기이 동작 http://www-10.lotus.com/ldd/xpagesforum.nsf/topicThread.xsp?action=openDocument&documentId=56E9B8537DA50A90852579A6002EAC64#FA00DE3675A456C0852579AB005A1FF4

설명했습니다 그리고 PMR과 이에 대한 가능한 해결 방법에 대한 몇 가지 힌트도 있습니다.

+0

감사합니다 울리히 - 나는 그들이이 Xpages 및 사용자 정의 컨트롤에 사방 datacontexts를 사용하고 있습니다, 빨리이 해결 희망! 해결 방법은 Domino 오브젝트와 실제로 작동하지 않습니까? – pipalia

1

페이지의 다른 컨트롤과 마찬가지로 datacontext를 여러 번 평가할 수 있습니다. dataContexts의 이점에 대한 자세한 내용은 here을 참조하십시오. 그러나 제 생각에는 코드 예제에서 xp : data 소스를 사용하는 것이 더 빠를 수 있지만 확실하지 않습니다.

+0

많은 감사합니다. 페리 - 이것은 매우 간단한 예입니다. 다른 장소에서 복잡한 방식으로 이것을 사용하고 있지만, 이것이 여러 번 실행된다는 사실은 걱정입니다! xp : datasource가 몇 번로드되었는지 확인하는 방법을 모르지만 같은 일을하는 것으로 추정됩니다! – pipalia

1

다른 모든 값 바인딩과 마찬가지로 #을 $로 변경하면 dataContext의 값 특성이 여러 번 요청 될 수 있지만 의 계산은으로 계산되므로 해당 값은 한 번만 실행됩니다.

+0

이것이 여기에 적용될지는 모르겠다. 내가 실수하지 않는다면 도미노 객체로로드 ($)를 계산할 수는 없다. – pipalia

+0

# 대 $는 속성 값 할당 방식을 결정합니다. #은 값 바인딩 객체가 생성되고 속성과 연결됨을 의미하므로 속성에 액세스 할 때마다 현재 값을 바인딩 할 값 바인딩을 요청합니다. $는 객체가 인스턴스화 될 때 표현식을 한 번 평가하고 결과를 속성의 로컬 값에 직접 지정한다는 것을 의미합니다. 따라서 속성에 액세스 할 때마다 해당 값이 반환됩니다. –

관련 문제