我必须在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真的是新手)
感谢
答案 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")