2016-12-16 12 views
0

enter image description hereのXPagesは - 繰り返し項目

カードは、上記の繰り返しを経由して移入され、ビューが分類されていない上のボタンをクリックして経由フラグを追加します。私が今追加したいのは、任意の順序でカードのいずれかに削除フラグを付加する機能です。以下は

削除ボタンのコードです:「あれば作品上記のコード

<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> 

が、それは仕事のために、削除ボタンを2回クリックする必要があり、それが順序である必要があり、それがありますTest 6 'をクリックすると、' Test 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ループを使用してコレクションを2回ループすることにしました。その後、アクションの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; 
} 

ありがとう: 以下は最終的なコードです。

関連する問題