在MOSS中如何限制標題在首頁上顯示的長度?

來源:互聯網
上載者:User

      在MOSS相關的項目中,我們經常要將內容彙總到首頁:比方說新聞、通知、文檔等內容,由於首頁內容相對較多,因此要對各部分內容顯示的地區加以限制,才能保證整個頁面配置的和諧與統一,限制標題顯示的字元數,就成了一個必須的要求。MOSS的文件庫和列表本身的試圖並不提供本身的功能,所以要實現這樣的功能就必須自己動手,一是寫自己的webpart,取出庫和列表的內容,然後按照自己的要求去展示內容,這種方法的優點是通用性強,並且可以將webpart寫的更加通用些,一次投入就一直受益,適合有開發能力的公司或個人;這種方法在SPS2003下就有人做了相應的工作。
      那麼,對於像我這樣的專註於系統而沒有開發經驗的人來說,是不是就沒有辦法了呢?答案當然是否定的!在Sharepoint designer中,有一項神奇的功能,可以將MOSS的庫和列錶轉換成XSLT資料檢視,藉助於XSLT,我們可以靈活的控制內容展示的形式。
      比如,我們想對這個列表的標題的字數加以限制,當字數<=12時,則顯示全部的標題,如果字數>12,則截取前面的9個字,並在後面加上...
      在SPD中找到我們插入頁面的庫或列表,右鍵,選擇轉換成XSLT試圖。
      對於列表,挑選清單的標題,對應的XSL代碼為:
        <xsl:value-of disable-output-escaping="no" select="@Title" />
      將代碼替換為:
      <xsl:if test="string-length(@Title)&lt;=12">    判斷如果標題的字串長度是否<=12
               <xsl:value-of disable-output-escaping="no" select="@Title" />    顯示完整標題:select="@Title"
      </xsl:if>
      <xsl:if test="string-length(@Title)&gt;12">    判斷如果標題的字串長度是否>12
               <xsl:value-of select="substring(string(@Title),1,9)" />...         顯示標題的前9個字元,並在後面加上 ...
      </xsl:if>
      對於文件庫,select的值不是標題,而是將檔案名稱處理後的標題,代碼如下:
      <xsl:value-of select="ddwrt:UrlBaseName(string(@LinkFilename))" />
      我們需要將對應的代碼修改如下:
        <xsl:if test="string-length(@LinkFilename)&lt;=12">
               <xsl:value-of select="ddwrt:UrlBaseName(string(@LinkFilename))" />
        </xsl:if>
        <xsl:if test="string-length(@LinkFilename)&gt;12">
               <xsl:value-of select="substring(ddwrt:UrlBaseName(string(@LinkFilename)),1,9)" />...
        </xsl:if>

       美中不足的是,我發現代碼中對於字串的計數是不分全形半形的,統統按照一個計算,這樣的話,如果標題或檔案名稱中如果包含了半形的字母或數字,所顯示的結果就不會如我們的想象一樣,是一個固定的長度,不過,對於標題過長從而換行導致的布局問題,總算是解決了!
       註:文中標題部分的代碼,參考了西安huahua同學在MOSS群中的討論,才使得我對這個問題有了一個完整的認識,在此表示感謝!

     

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.