2016-05-04 2 views
1

Ich habe mit einem seltsamen Effekt zu kämpfen: In einer Wiederholungssteuerung habe ich ein benutzerdefiniertes Steuerelement mit einem Fileupload-Steuerelement und -download. Die Elementnamen werden mit der Zeilenvariable der Wiederholung berechnet, sodass ich "dynamische Felder" für mein Notizdokument erzeugen kann. Funktioniert einwandfrei (Uploads werden separat angezeigt und in verschiedenen Richtext-Elementen gespeichert), mit Ausnahme der Dateilöschtaste: Sie kann nur die Datei (en) in der letzten Dateidownloadsteuerung meiner Wiederholung löschen. Soweit ich es untersucht habe: Die Delete-Buttons der anderen Filedownloads versuchen, Dateien vom letzten Artikelnamen im Repeat zu löschen, nicht vom entsprechenden Item-Namen.xpages Fileupload-Steuerelement kann nicht in einer Wiederholungssteuerung löschen

hier ist mein Beispielcode (für diese Buchung vereinfacht):

XPage:

<xp:view xmlns:xp="http://www.ibm.com/xsp/core" 
    xmlns:xc="http://www.ibm.com/xsp/custom"> 

    <xp:this.data> 
     <xp:dominoDocument var="test" formName="answers"></xp:dominoDocument> 
    </xp:this.data> 

    <xp:repeat id="repeat1" rows="30" var="r"> 
     <xp:this.value><![CDATA[#{javascript:var atts = new Array(); 
      atts.push("att1"); 
      atts.push("att2"); 
      atts.push("att3"); 
      return atts}]]></xp:this.value> 
     <xc:ccdummy fname="#{javascript:r}"></xc:ccdummy> 
    </xp:repeat> 


    <xp:button value="Save" id="button1"><xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="false" save="true"> 
    <xp:this.action> 
     <xp:saveDocument var="test"></xp:saveDocument> 
    </xp:this.action></xp:eventHandler></xp:button> 
    </xp:view> 

individuelle Steuerung:

<xp:view xmlns:xp="http://www.ibm.com/xsp/core"> 
    <xp:panel id="ccpanel"> 
     <xp:fileUpload id="fileUpload1"> 
      <xp:this.value><![CDATA[#{test[compositeData.fname]}]]></xp:this.value> 
      <xp:eventHandler event="onchange" submit="true" 
       refreshMode="partial" disableValidators="true" refreshId="ccpanel"> 
      </xp:eventHandler> 
      <xp:eventHandler event="onclick" submit="true" 
       refreshMode="norefresh"> 
      </xp:eventHandler></xp:fileUpload> 
     <xp:fileDownload rows="30" id="fileDownload1" 
      displayLastModified="false" hideWhen="true" 
      allowDelete="true"> 
      <xp:this.value><![CDATA[#{test[compositeData.fname]}]]></xp:this.value><xp:eventHandler event="onclick" submit="true" 
       refreshMode="norefresh"> 
      </xp:eventHandler> 
     </xp:fileDownload> 
    </xp:panel></xp:view> 

Antwort

3

hinzufügen Option repeatControls="true" auf Ihre Wiederholungssteuerung.

Es stellt sicher, dass jedes eingebettete benutzerdefinierte Steuerelement in Wiederholungssteuerung separat erstellt wird und unabhängig agiert.

Getestet habe ich es mit Ihrem Beispiel:

  • repeatControls="false": nur Anhänge von den letzten Download-Steuerung kann
  • repeatControls="true" gelöscht werden: Anlagen aus allen Download-Steuerungen können
+0

Dank für diese gelöscht werden schnelle Lösung !! –