在Sharepoint中生成超链接

时间:2017-07-25 07:37:29

标签: sharepoint

我必须在sql表中生成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 generated)但我必须替换:

/test/ with /test.abc.local/

仅显示带文件名的文本(“/”后面的“path”字段子字符串)

如果不创建新视图或计算字段,我怎么能这样做?

我尝试过:

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

但没有成功。 (我在Sharepoint真的是新手)

感谢

2 个答案:

答案 0 :(得分:1)

如果我正确理解你的问题,我强烈建议你使用RegEx(),这可能是有史以来最方便的事情来处理字符串查找/替换。

你可以放一个JavaScript函数来执行<script language="javascript"></script>内部页面上的RegEx()替换,然后在你的<asp:label>上,你将通过传递字符串@来替换调用此函数的输出。 thisNode / @ PATH到您编写的JavaScript函数,它将查找并替换所需输出的子字符串

答案 1 :(得分:1)

我不会删除之前的答案,因为它仍然有效,如果有人遇到同样的问题,它非常方便,所以RegEx()表达式会有这样的结果:

function ($entry) use ($needle) {
    return $entry === $needle;
}

使用上面的表达式,您可以找到所需的字符串,因此下面的示例为您提供了页面上的所有LABELS,并从那里可以使用以下内容:

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

使用上面的表达式,您可以找到所需的字符串,因此下面的示例为您提供了页面上的所有LABELS,并从那里可以使用以下内容:

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