如何使用链接控件创建到另一个数据库的链接?

时间:2013-03-28 13:05:46

标签: xpages

如何使用链接控件创建指向其他数据库的链接?我认为我只是用斜杠启动URL,但它不起作用,因为xpages将当前数据库的路径预先添加到此链接,并且我得到了错误的链接:/app/projects.nsf/database.nsf/page.xsp

<xp:link escape="true" text="Link" id="link1" value="/database.nsf/page.xsp">   
</xp:link>

我知道我可以创建以http://开头的绝对链接,但我想避免这种情况......

3 个答案:

答案 0 :(得分:1)

如果数据库位于服务器上的同一子目录中,则可以使用../xxx.nsf 对于您想要返回的每个子文件夹,您可以添加../

案例中的例子:

<xp:link escape="true" text="Link" id="link1" value="../database.nsf/page.xsp">
</xp:link>

如果数据库是当前数据库之上的一个文件夹&#39;您可以使用此文件夹:

<xp:link escape="true" text="Link" id="link1" value="../../database.nsf/page.xsp">
</xp:link>

希望有所帮助。 迈克尔

答案 1 :(得分:1)

您可以使用xp:text元素并将其转换为锚点:

<xp:text escape="true" id="link1" tagName="a" value="Link">
   <xp:this.attrs>
      <xp:attr name="href" value="/database.nsf/page.xsp"></xp:attr>
   </xp:this.attrs>
</xp:text>

或者将链接添加为Passthrough Tag。

答案 2 :(得分:0)

基于Sven的答案,我计算了URL,并将目标设置为新选项卡。 所以我的xp:text元素是:

<xp:text id="label4" escape="true"
    styleClass="btn btn-default" value="Open Fastworks Document"
        tagName="a">
    <xp:this.attrs>
        <xp:attr name="href">
        <xp:this.value><![CDATA[#{javascript:var sUNID = document1.getItemValueString("FWUNID");
var sNSF = document1.getItemValueString("FWNSF").replace("\\","/");
//sys_all/A4DC4CFDA12A1A4E80257F48003DD8F9?OpenDocument
"/"+sNSF + "/sys_all/"+sUNID;}]]></xp:this.value>
        </xp:attr>
        <xp:attr name="target"
                value="_blank">
        </xp:attr>
    </xp:this.attrs>
</xp:text>

然后生成HTML,如:

<a class="btn btn-default" id="view:_id1:_id2:callback2:label4" href="/Fastworks/Version52m/Accident.nsf/sys_all/31F7D581D23BCFE580257FA1002E3B43" target="_blank">Open Fastworks Document</a>