代码之家  ›  专栏  ›  技术社区  ›  Ben Dubuc

xpages:如何模拟表单的自动启动属性

  •  0
  • Ben Dubuc  · 技术社区  · 6 年前

    有没有一种快速简便的方法来转换具有自动启动第一个附件和/或启动URL的表单?

    我知道它可以在ssjs中编码,但我只是想知道是否有人有一个快速的方法来做这件事。

    谢谢

    2 回复  |  直到 6 年前
        1
  •  2
  •   Peter Della-Nebbia    6 年前

    下面的domino url命令将打开一个附件…

    http://Host/DatabaseName/View/DocumentName/$File/fileattachmentname   
    

    …其中,documentname实际上是排序后的第一列中显示的查找值。

    添加xp:link控件并对其进行编码以打开附件(在本例中是在新窗口中)。例如,以下是xp:link,可以添加到xp:viewcolumn或xp:repeat或任何迭代器控件中。在本例中,迭代器的var设置为“rowdata”,链接的名称从listname列返回,启动附件的url在clinkurl列中。

        <xp:link escape="true" id="link1" target="_blank">
            <xp:this.text><![CDATA[#{javascript:rowData.getColumnValue("ListName");}]]></xp:this.text>
            <xp:this.value><![CDATA[#{javascript:rowData.getColumnValue("cLinkUrl")}]]></xp:this.value>
        </xp:link>
    
        2
  •  0
  •   Ben Dubuc    6 年前

    由于我希望代码位于xpage中,因为它会根据角色打开文档或附件,所以我最终将其添加到xpage的beforepageload事件中(但仍需要将角色检查添加到该事件中):

    <xp:this.beforePageLoad>
            <xp:executeScript>
                <xp:this.script><![CDATA[#{javascript:var url = currentDocument.getDocument().getHttpURL();
        var attachmentName = @AttachmentNames();
        facesContext.getExternalContext().redirect(url.replace("?OpenDocument","/$File/"+attachmentName+"?OpenElement&target=_new"));}]]></xp:this.script>
            </xp:executeScript>
           </xp:this.beforePageLoad>