2017-10-18 3 views
1

새로운 것을 시도 중입니다. json 객체가있는 arraylist를 사용자 정의 컨트롤의 속성 정의를 통해 전달하려고합니다. 나는 cols라고 불리는 속성이고 type 객체입니다. 반복 제어에서 json 객체로 arraylist에 액세스하는 방법

<xc:this.cols><![CDATA[#{javascript:var cols = []; 

cols.push({ 
     "colName" : "Petter", 
     "colValue" : "Developer" 
    }); 
cols.push({ 
     "colName" : "Jesper", 
     "colValue" : "Administrator" 
    }); 
return cols;}]]></xc:this.cols> 

지금 내 중계기에서 나는 이러한 개체/값을 사용하려면 : 다음으로 내가 현재 속성 값을 계산 한 xpage에

. 하지만 어떻게 확신 할 수 없습니까?

은 우선 자바 스크립트 예컨대 : 이것은 내가 값 개발자를 얻을 수 및 관리자가 반환하기 때문에 작동하는 것 같다

<xp:text escape="true" id="computedField1"> 
      <xp:this.value><![CDATA[#{javascript:var cols = compositeData.cols; 

cols[0]["colValue"]}]]></xp:this.value> 
     </xp:text> 
     <xp:text escape="true" id="computedField3"> 
      <xp:this.value><![CDATA[#{javascript:var cols = compositeData.cols; 

cols[1]["colValue"]}]]></xp:this.value> 
     </xp:text> 

에서 그들을 액세스 할 수 얼마나 내 반복 제어 외부했습니다.

이제 반복 제어에서 json에 액세스하려고하지만 여기에서 길을 잃습니다. 내 반복 컨트롤 내에서 계산 된 텍스트 컨트롤을 배치하고 비슷한 시도했다

다음
<xp:repeat id="repeat1" rows="30" var="colObj" indexVar="idx" 
      value="#{javascript:compositeData.cols}"> 

: 여기

내가 내 반복 제어를 설정하는 방법입니다

<xp:text escape="true" id="computedField2"> 
       <xp:this.value><![CDATA[#{javascript:colObj[idx]["colValue"]}]]></xp:this.value> 
      </xp:text> 

을하지만 내가 얻을 오류 :

com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue (JavaScriptValueBinding.java:132)

누군가 내가 뭘 잘못했는지 정확히 설명해야합니까?

답변

2

이 변경 시도하지 : 여기에

<xp:text escape="true" id="computedField2"> 
    <xp:this.value><![CDATA[#{javascript:colObj[idx]["colValue"]}]]>  
    </xp:this.value> 
</xp:text> 

:

<xp:text escape="true" id="computedField2"> 
    <xp:this.value><![CDATA[#{javascript:colObj["colValue"]}]]> 
    </xp:this.value> 
</xp:text> 

당신은 그래서 colObj이 alreadyb, 하위 집합을 얻을 필요합니다. 반복 제어는 idx를 다루므로 반복에서 colObj은 반복 외부의 colObj[n]과 같습니다.

+0

안녕하세요. Rob. 실제로 색인은 나를 위해 제공됩니다. 고맙습니다! – Malin

관련 문제