2013-03-28 159 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>

相關問題