2014-05-01 162 views
1

我發現了幾個類似的問題,在這個在stackoverflow但沒有完全匹配。我正在嘗試修改一個Xpages項目,其中搜索結果顯示在動態視圖面板中。搜索結果的第一列是在同一頁面中打開記錄的鏈接。我想要做的是讓這個鏈接在單獨的頁面中打開記錄。它是"Dynamic"視圖的一部分,令人困惑,我認爲沒有"Column Name""Column View"添加在window.open或target="_blank",我可以看到。我該怎麼去解決這個問題?Xpages鏈接打開新的瀏覽器選項卡

XPage的相關部分僅包含以下內容;

<xp:panel id="maincontentpanel"> 
    <xe:dynamicViewPanel rows="30" id="dynamicViewPanel1" width="100%"> 
     <xe:this.data> 
     <xp:dominoView viewName="(keywordsUser)" var="view"> 
     </xp:dominoView> 
     </xe:this.data> 
    </xe:dynamicViewPanel> 
</xp:panel> 

在HTML中查看源時,可點擊列顯示以下內容;

<tr> 
    <td class="xspColumnViewStart"> 
     <a id="view:_id1:cc4cconeuilayout:OneUIMainAreaCallback:dynamicViewPanel1:0:_id6:_internalColumnLink" 
      href="*routetoourrecord*";action=editDocument" 
      class="xspLinkViewColumn">2014</a> 
    </td> 

回答

1

動態視圖面板在所有屬性中都有一個屬性「target」,您可以在其中選擇「_blank」。這應該將屬性target="_blank"添加到第一列中的鏈接。但是,不幸的是,這在Notes客戶端僅適用於

因此,我們可以設置沒有屬性。幸運的是,呈現的鏈接有一個自己的類「xspLinkViewColumn」(請參閱​​您的源HTML示例)。通過dojo.query,我們可以獲得具有此類的所有元素,並在客戶端添加目標屬性。

只需添加以下事件代碼到XPage:

<xp:eventHandler 
    event="onClientLoad" 
    submit="false"> 
    <xp:this.script><![CDATA[ 
     dojo.query(".xspLinkViewColumn").attr("target", "_blank"); 
    ]]></xp:this.script> 
</xp:eventHandler> 

所有鏈接將會獲取屬性target="_blank"這種方式和文件將在新的瀏覽器選項卡中打開。

+0

原諒我,我還是很新的XPages。 「視圖欄鏈接」是否提到了動態視圖面板的屬性?如果是這樣,我看不到它! – AJF

+0

我更新了答案,希望能更好地理解。你真的只需要將上面的代碼添加到你的Xpage或自定義控件,它就可以工作。 –

+0

再次感謝克努特。我將你提供的代碼添加到XPage中,但它仍然沒有在新的瀏覽器標籤\窗口中打開記錄。我嘗試在dynamicviewpanel的XML標記中添加代碼,然後執行構建和清理,但沒有區別。然後將代碼移出dynamicviewpanel到Xpage的頂部附近 - 再次構建和清理,但仍然是一樣的。然後我嘗試刪除代碼,並在XPage的屬性中,在「onClientLoad」事件中添加了以下內容,dojo.query(「.xspLinkViewColumn」)。attr(「target」,「_blank」);但仍然沒有工作。我究竟做錯了什麼? – AJF

1

只是讓知道代碼不能與Bootstrap主題一起工作。

相反,你可以使用

dojo.query('[id$="_internalColumnLink"]').attr("target", "_blank"); 
相關問題