2016-05-04 3 views
1

Я борюсь со странным эффектом: В режиме повторного управления у меня есть настраиваемый элемент управления с файловым и диспетчерским управлением. Имена элементов вычисляются с помощью строки var повтора, поэтому я могу генерировать «динамические поля» для моего документа заметок. Прекрасно работает (закачки отображаются отдельно и сохраняются в разных элементах richtext), кроме кнопки удаления файла: он может удалять только файлы (файлы) в последнем элементе управления filedownload моего повтора. Насколько я ее рассмотрел: кнопки удаления других filedownloads пытаются удалить файлы из последнего имени элемента в повторе, а не из их соответствующего имени элемента.xpages fileupload control не может удалить в контроле повтора

здесь мой (упрощенный для этого оприходования) пример кода:

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> 

таможенного контроль:

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

ответ

3

Добавить опцию repeatControls="true" к вашему контролю повтора.

Он гарантирует, что каждый встроенный пользовательский элемент управления в режиме повторного управления создается отдельно и действует независимо.

Я проверил это с вашим примером:

  • repeatControls="false": только вложения из последнего управления загрузкой могут быть удалены
  • repeatControls="true": вложения из всех элементов управления загрузкой может быть удалены
+0

спасибо за это быстрое решение !! –

Смежные вопросы