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:// 开头的绝对链接,但我想避免这种情况......

4

3 回答 3

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>

希望有帮助。迈克尔

于 2013-03-28T13:40:26.247 回答
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>

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

于 2013-03-28T15:00:14.820 回答
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>

于 2016-04-26T14:05:00.230 回答