2014-05-21 3 views
1

레코드 용으로 teamstudio의 플러그를 뽑았습니다.Teamstudio Unplugged : 인라인 편집

뷰를 데이터 소스로 사용하여 반복 컨트롤을 사용하여 테이블을 작성하려고합니다. 사용자는 문서 편집을 변경하고 모든 데이터 소스를 저장할 수 있어야합니다.

다음은 현재 작동하지 않는 예입니다. 또한 셀의 다른 모든 확인란에 대해 계산 ID를 사용하고 행의 문서 UNID를 숨겨진 텍스트 필드에 저장하고 계산 된 ID를 기반으로 모든 행을 읽고 저장하는 시도를했습니다. 리피터의 컴퓨팅 ID는 수 많은 노력에도 불구하고 플러그를 뽑으면 불가능합니다.

제가 잘못했거나 시도하지 않은 트릭이 있다면, 그것에 대해 듣고 싶습니다.

<xp:table id="table"> 
       <xp:tr> 
        <xp:td>Document name</xp:td> 
        <xp:td>Field1</xp:td> 
        <xp:td>Field2</xp:td> 
        <xp:td>Field3</xp:td> 
       </xp:tr> 
       <xp:repeat id="repeat1" rows="30" 
        value="#{TestDocs}" indexVar="index" var="Docs" first="0" 
        removeRepeat="true" repeatControls="true"> 
        <xp:panel> 

         <xp:tr> 
          <xp:td> 
           <xp:text id="Name" escape="true" 
            value="#{document1.Name}"> 
           </xp:text> 
          </xp:td> 
          <xp:td> 
           <xp:checkBox id="Field1" 
            checkedValue="true" uncheckedValue="false" 
            value="#{document1.Field1}"> 
            <xp:this.defaultChecked><![CDATA[${javascript: 

if(document1.getDocument().getItemValue("Field1")=="[true]"){    
return true; 
    }else{ 
return false; 
}}]]></xp:this.defaultChecked> 


           </xp:checkBox> 
          </xp:td> 
          <xp:td> 
           <xp:checkBox id="Field2" 
            checkedValue="true" uncheckedValue="false" 
            value="#{document1.Field2}"> 
            <xp:this.defaultChecked><![CDATA[${javascript: 

if(document1.getDocument().getItemValue("Field2")=="[true]"){    
return true; 
}else{ 
return false; 
}}]]></xp:this.defaultChecked> 


           </xp:checkBox> 
          </xp:td> 
          <xp:td> 
            <xp:checkBox id="Field3" 
            checkedValue="true" uncheckedValue="false" 
            value="#{document1.Field3}"> 
            <xp:this.defaultChecked><![CDATA[${javascript: 

if(document1.getDocument().getItemValue("Field3")=="[true]"){    
return true; 
}else{ 
return false; 
}}]]></xp:this.defaultChecked> 


           </xp:checkBox> 
          </xp:td> 

         </xp:tr> 
        </xp:panel> 
       </xp:repeat> 
      </xp:table> 
      <xp:button value="Save" id="button3" 
       styleClass="button"> 

       <xp:eventHandler event="onclick" submit="true" 
        refreshMode="complete" disableValidators="true"> 
        <xp:this.action> 
         <xp:save></xp:save> 
        </xp:this.action> 
       </xp:eventHandler> 
      </xp:button> 

답변

0

이 클라이언트 측 모두에 대한 논리를 옮기는 것이 좋습니다. 따라서 jQuery를 사용하여 테이블을 만든 다음 저장하면 필드에서 값을 가져 와서 실제로 저장하게 될 숨겨진 필드에 값을 씁니다. 등 필드의 ID를 컴퓨팅의 관점에서

, 내가 작업 할 요소에 속성을 추가 한 다음 사용하여 선택 할 jQuery를 :

$('[myattr="the value"]') 
+0

jQuery를 아마 XPages에서 사용할 수있는 가장 좋은 일이 아니다, 어떻게 작동 시킬지 명확하지 않기 때문에 ... –

+0

이것은 XPage를 에뮬레이션하고 jQuery와 함께 제공되는 Unplugged Controls 프로젝트를 사용하여 Teamstudio Unplugged에서 사용하기위한 것입니다. –

+1

버전 3.1에서는 Unplugged가 자동으로 jQuery를 더 이상 포함하지 않습니다 (http://info.teamstudio.com/hs-fs/hub/218295/file-712497103-pdf/teamstudiodocs/release-notes/rn_en_Unplugged_3.1_iOS.pdf). 여전히 수동으로 추가 할 수 있습니다. –