xpages fileupload控件无法在重复控件中删除

时间:2016-05-04 10:47:49

标签: file-upload xpages

我正在努力解决一个奇怪的问题: 在重复控件中,我有一个带有fileupload和-download控件的自定义控件。项目名称是使用repeat的row var计算的,因此我可以为我的notes文档生成“dynamic fields”。 工作正常(上传分别显示并保存在不同的richtext项目中),文件删除按钮除外:它只能删除重复的最后一个filedownload控件中的文件。据我检查过:其他filedownloads的删除按钮尝试从重复中的最后一个项目名称中删除文件,而不是从相应的项目名称中删除。

这是我的(本帖子简化)示例代码:

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

1 个答案:

答案 0 :(得分:3)

将选项repeatControls="true"添加到重复控件中。

确保重复控制中的每个嵌入式自定义控件都是单独创建的,并且独立运行。

我用你的例子测试了它:

  • repeatControls="false":只有上次下载控件的附件才可以 被删除
  • repeatControls="true":可以删除所有下载控件中的附件