2016-12-16 12 views
0

enter image description hereXpages은 - 반복 항목

카드가 위의 반복을 통해 채워집니다 및보기가 분류되지 않은에서 버튼 클릭을 통해 플래그를 추가합니다. 지금 추가하고 싶은 것은 임의의 순서로 카드에 삭제 플래그를 추가하는 기능입니다. '그 경우입니다, 위의 작품

<xp:link> 
    <span class="glyphicon glyphicon-trash pull-right text-primary"></span> 
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete"> 
     <xp:this.action><xp:actionGroup><xp:executeScript> 
      <xp:this.script><![CDATA[#{javascript: 
     var name=getComponent("FullName").getValue(); 
     var vec:NotesView = database.getView("SupportTeam"); 
     var docEv:NotesDocument = vec.getFirstDocument(); 
     if (name == docEv.getItemValueString("FullName")) { 
      docEv.replaceItemValue("SupportAction", "Delete");   
      docEv.save(); 
     } 
    }]]></xp:this.script> 
              </xp:executeScript> 
             </xp:actionGroup> 
            </xp:this.action></xp:eventHandler> 
            </xp:link> 

코드 만 삭제 버튼이 작동 두 번 클릭해야하고이 순서대로 있어야한다 : 아래

는 삭제 버튼에 대한 코드입니다 테스트 6 '이 클릭되면'테스트 5 '가 진행 중이므로 삭제되지 않습니다.

getdocumentbykey()를 사용했지만 뷰를 분류해야 여러 항목이 표시됩니다. 이 경우 빈 카드가 많이 표시됩니다.

귀하의 도움에 감사드립니다. 당신이 뭔가로 반복의 VAR 속성을 설정 한

+1

아마도 우리가 그 구조를 이해할 수 있도록 카드 렌더링 코드를 보여줄 것입니다. 또한 반복 객체는 어떻게 구성됩니까? ViewScope에 저장 되나요 ?? – Newbs

+0

@Newbs가 말했듯이'xp : repeat'의 코드로 확장하고 데이터 소스를 계산하는 방법에 대해 더 많은 것이 계몽 될 것입니다. –

답변

0

우리는 다음에 행 데이터를 사용할 수 있음을, aslong 그러나, 당신의 반복 코드를 볼 필요가, 그래서 당신은 같은 것을 사용할 수 있습니다

var id = rowData.getUniversalID(); 
var docEv:NotesDocument = database.getDocumentByUNID(id); 
docEv.replaceItemValue("SupportAction", "Delete");   
docEv.save(); 
//Or to do a hard delete 
docEv.remove(true); 
0

나는 while 루프를 사용하여 컬렉션을 두 번 반복하여 컬렉션을 얻은 다음 작업을위한 for 루프를 실행하기로 결정했습니다.하지만이 작업을 수행하는 더 좋은 방법이 있어야합니다. 다음은 최종 코드입니다.

var name = getComponent("FullName").getValue(); 
var vec:NotesView = database.getView("SupportTeam"); 
var docEv:NotesDocument = vec.getFirstDocument(); 
var collection = []; 
while (docEv != null){ 
    try{ 
     var member = docEv.getItemValueString("SupportFullName"), memberLength = collection.length; 
     collection.push(member); 

     for (var i = 0; i < memberLength; i++) { 
      if(memberLength != null && name == docEv.getItemValueString("SupportFullName")){ 
       docEv.replaceItemValue("SupportAction", "Delete");   
       docEv.save(); 
      } 
     } 
    }catch(e){ 
     print("error: " + e.toString()); 
    } 

    var tmp = vec.getNextDocument(docEv); 
    docEv.recycle(); 
    docEv = tmp; 
} 

감사합니다.