2013-03-28 100 views
1

如何使用链接控件创建到另一个数据库的链接?我认为我只是用斜线开始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://,但我想避免这种情况...

回答

1

可以使用XP:文本元素并将其转换为一个锚:

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

或添加链接作为直通标签。

1

如果数据库在服务器上的同一个子目录,你可以使用../xxx.nsf 对于您想返回的每个子文件夹,您可以预先设置一个../

示例在您的情况下:

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

如果数据库是当前数据库文件夹上面的一个文件夹,你可以使用这个:

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

希望有所帮助。 迈克尔

0

为了在Sven的答案基础上,我计算了网址,并将目标设置为新选项卡。 所以我的XP:文本元素:

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

相关问题