如何使用链接控件创建指向其他数据库的链接?我认为我只是用斜杠启动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://开头的绝对链接,但我想避免这种情况......
答案 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>