2010-06-03 46 views

回答

0
  1. 一些很好的链接。

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(它应该在属性风中OWS)

  • 找到这一行和修改,如果你想过滤的WebPart列表

  • <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/>

    0

    使用标准substring(string, int, int)功能不会让你很远,因为我希望字符串函数的文档库名称的长度是未知的。

    但是,您可以一起使用两种功能,substring-after(string, string)substring-before(string, string)。只要您的网站名称不是“表单”,您就可以使用substring-before([URL], "/Forms")检索部分字符串。其余......如果您没有立即访问网站名称,它仍然很麻烦,但即使删除该选项,它仍然比网址长度中的复杂计算容易得多。您基本上必须不断执行substring-after([string], "/"),直到弹出最后一个斜杠。

    +0

    感谢ccomet。我会试一试,我会发布最终的代码。 谢谢/ Ria – Langoria 2010-06-03 18:35:48

    1

    下面的代码会给您的文档库的名称从您发布的URL(或在文档库中的任何视图)

    String pattern = ".*/(?<listStaticName>.+)/[^\\.]+\\.aspx"; 
    Regex regex = new Regex(pattern); 
    MatchCollection matches = regex.Matches(DefaultViewUrl); 
    String listStaticName = matches[0].Groups["listStaticName"].ToString(); 
    

    您可以使用this article描述的方法来调用.NET来自XSL的代码

    +0

    Hugo, 1.感谢您的帮助,但 a。这是xsd的代码吗?如果是的话,我在哪里放置代码? b。如果没有,那么你可以给我xsd代码从URL中找出文档库名称(获取当前文档的libray名称,如果有其他方法,它不必从url中获取它) – Langoria 2010-06-03 20:40:39

    +0

    您可以从您的.NET xsl代码。我用链接编辑了我的答案。为什么downvote btw? – 2010-06-04 13:25:20

    相关问题