2017-07-25 92 views
0

我有一個基於SQL表像這樣產生SharePoint中的超鏈接:生成超鏈接在Sharepoint

+----+----------------------------+ 
| ID | path      | 
+----+----------------------------+ 
| 1 | file://test/9932323.pdf | 
+----+----------------------------+ 
| 2 | file://test/1653156423.pdf | 
+----+----------------------------+ 

其實有這個代碼來生成HTML鏈接:

<a href="{$thisNode/@PATH}"><asp:Label runat="server" id="ff1{$ID}" text="{$thisNode/@PATH}" /></a> 

我不能修改SQL表(dinamically生成),但我必須替換:

/test/ with /test.abc.local/ 

顯示爲文件名只文本(「路徑」欄子最後後「/」)

我怎樣才能到,如果沒有創造新的視圖或計算字段?

我試着用:

<a href="{REPLACE($thisNode/@PATH),12,1,'.abc.local/')}"><asp:L ... 

,但沒有成功。 (我真的在Sharepoint新手)

感謝

回答

1

我不打算刪除先前的答案,因爲它仍然有效,如果有人遇到同一問題,它非常方便,所以RegEx( )你會有這樣的事情:

/(file\:\/\/)/g 

使用上面的表達式,你可以找到你想要的字符串,所以下面的例子給你所有標籤頁上,並從那裏你可以使用以下命令:

.replace(new RegExp("/(file\:\/\/test)","gm"),"/test.abc.local") 

使用上面的表達式,你可以找到字符串你想要的,所以下面的例子給你一個網頁上的所有標籤,並從那裏你可以使用以下命令:

$('input[type=text]').each(
    function(index) 
    { 
     console.log(' text: ' + $(this).val() + ' replace: ' + $(this).val().replace(new RegExp("(file\:\/\/test)","gm"),"/test.abc.local")); 
    } 
); 
+0

有一個ty po我的jquery(),我確實使用$('input [type = text]'),實際上你不應該使用它,這將捕獲編輯框,對於標籤,將'input'替換爲'label' –

1

如果我理解正確你的問題,我強烈建議你使用正則表達式(),它可能是有史以來處理字符串找到最方便的事情/替代。

您可以將JavaScript函數的網頁上執行<script language="javascript"></script>內的正則表達式()替代,那麼你<asp:label>你將取代輸出通過PATH傳遞字符串@ thisNode/@給JavaScript調用這個函數你會發現並替換所需輸出的子字符串

+0

也許這是一個很好的解決方案,但它太先進了我添加JavaScript來產生一個SharePoint page .. – sunlight76

+0

這很簡單,我會給你一個樣本作爲你的問題的另一個答案 –