2010-06-03 76 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

    相關問題