如何从 URL cqwp 获取文档库名称。例如,
http:///sites/site1/DocLib/Forms/AllItems.aspx
我知道 xsl 有子字符串函数
<xsl:param name="DocLibName">
select=substring(url) or whatever the code should be
</xsl:param>
如何从 URL cqwp 获取文档库名称。例如,
http:///sites/site1/DocLib/Forms/AllItems.aspx
我知道 xsl 有子字符串函数
<xsl:param name="DocLibName">
select=substring(url) or whatever the code should be
</xsl:param>
以下代码将从您发布的 URL(或文档库中的任何视图)为您提供文档库的名称
String pattern = ".*/(?<listStaticName>.+)/[^\\.]+\\.aspx";
Regex regex = new Regex(pattern);
MatchCollection matches = regex.Matches(DefaultViewUrl);
String listStaticName = matches[0].Groups["listStaticName"].ToString();
您可以使用本文介绍的方法从 XSL 调用 .NET 代码
使用标准substring(string, int, int)
函数不会让你走得太远,因为我预计文档库名称的长度是未知的。
但是,您可以同时使用两个功能,substring-after(string, string)
以及substring-before(string, string)
. 只要您的站点名称不是“表单”,您就可以使用substring-before([URL], "/Forms")
. 其余的......如果您无法立即访问站点的名称,它仍然会很麻烦,但即使删除该选项,它仍然比 URL 长度的复杂计算要容易得多。你基本上必须不断地执行substring-after([string], "/")
,直到你弹出最后一个斜线。
http://msdn.microsoft.com/en-us/library/dd583143(office.11).aspx
<xsl:variable name="DocLibName" select="substring-before(substring-after($PageUrl, '/Forms/'), '/')" />
<xsl:param name="PageUrl"/>
设置 VIEWFLAG=1(它应该在属性窗口中)
找到此行并根据需要进行修改 Filter the webpart list
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row" />
将其更改为以下
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[(@CustomerNo=$DocLibName)]"/>
您可以使用它来显示
<xsl:value-of select="$DocLibName"> <br/>
<xsl:value-of select="$PageUrl"/><br/>