2017-12-15 2 views
2
나는 xpage 반복 제어를위한 데이터 소스로 다음을 사용하고

을 표시하는 방법이 필요합니다 문법은 다음에 대한 답변으로 인해 정확합니다. Making a viewEntryCollection an objectDataSource는 A 레이블 값 또는 계산 필드

계산 된 필드에 값을 표시하는 방법은 알 수 없습니다. 표현식 언어 인 rowHandle.fieldname을 사용하여 간단한 바인딩을 시도했다. 그리고 내가 여러 가지 검색을 통해 찾은 rowHandle.getColumnValue와 같은 몇 가지 다른 자바 스크립트 메소드. 그들은 모두 다양한 오류를 반환합니다. javascript로 시도한 메소드가 NotesViewEntryCollections에 유효하지 않다고 생각합니다. 표현식 언어 메소드는 다음을 리턴합니다. lotus.domino.local.ViewEntry 유형의 bean에서 특성 'fieldname'을 가져 오는 중 오류가 발생했습니다. 나는이 간단해야한다고 생각

<xp:panel style="margin-left:10.0px;margin-top:10.0px"> 
     <xp:repeat id="repeat1" rows="30" var="rowHandle"> 
      <xp:this.value><![CDATA[#{javascript:var extDB = session.getDatabase("","Position.nsf"); 
var emailNVCollection:NotesViewEntryCollection = extDB.getView("PrincipalEmails").getAllEntries(); 
return emailNVCollection}]]></xp:this.value> 
      <xp:text escape="true" id="computedField1" 
       value="#{rowHandle.posd_email}"> 
      </xp:text> 
</xp:repeat></xp:panel></:view> 

:

다음은 실제 소스이다. 평소처럼. --- 리사 &

답변

3

귀하는 반복 값으로 NotesViewEntryCollection이 있습니다.

모든 rowHandleNotesViewEntry의 인스턴스입니다.

getDocument()으로 문서의 항목에 액세스 할 수 있습니다.

rowHandle.getColumnValues().firstElement().toString() 
+0

감사 크 누트가 필요합니다 - 완벽하게 작동하고 나에게 약간의 이해를주었습니다. –

1

당신은하고 싶지 않을 것이다 :

rowHandle.getDocument().getItemValueString("yourItemName") 

귀하의 예는이 예제의 첫 번째 열처럼 view's column values를 사용하는 경우 비록

<xp:text escape="true" id="computedField1" 
     value="#{javascript: rowHandle.getDocument().getItemValueString('posd_email')> 
    </xp:text> 

당신은 더 나은 성능을 얻을 것이다 그. MVC 패러다임에 반대하는 것 외에 성능 문제를 이미 요구하고 있습니다.

XPage는 여전히 MVC 패러다임을 잘못된 방향으로 문지르지 만, 기본 데이터베이스 객체에서 벗어나 대응 객체 래퍼 (이 경우 ViewEntry에서 DominoViewEntry)로 작업 할 수 있습니다. 만큼

<xp:repeat id="repeatPrincipalEmails" value="#{principalEmails}" var="principalEmail"> 
    <xp:text value="#{principalEmail.posd_email}" /> 
</xp:repeat> 

: 다음

<xp:this.data> 
    <xp:dominoView var="principalEmails" databaseName="Position.nsf" 
     viewName="PrincipalEmails" /> 
</xp:this.data> 

당신이 반복 컨트롤의 데이터 소스를 참조 :

먼저 (보통 페이지의 시작 부분에 선언 된) 데이터 소스를 정의해야합니다 점 뒤에 정의한 값은 프로그램의 이름 열에 해당합니다. 수식이 포함되지 않으면 해당 이름이 필드 이름과 자동으로 일치합니다. 뷰에있는 열을 참조 할 수 있습니다.

당신은 당신이 할 수있는 최선의 일은이 분야에 또 다른 열을 추가하지 않고 도미노 문서 객체에 자신을 점점 자제하는 것입니다 뷰가 아닌 다른 필드를 참조해야하는 경우가

+0

Shillem, 고맙습니다. 두 가지 대답 모두 녹색으로 확인할 수 있으면 좋겠다. 나는 너에게 upvote를 주었다. –

+0

NotesViewEntryCollection을 사용하고 싶다는 의견을 제시했기 때문에 확인해 보았습니다. 그러나 성능 문제를 해결하고 다른 방법을 제시해 주셔서 감사합니다. –