2010-04-19 57 views
1

我正在使用列表視圖。我想要一個列看起來類似於名爲「類型(鏈接到文檔的圖標)」列的文檔庫列。我也應該能夠設置這個超鏈接圖標應該打開的路徑。我嘗試了很多與現有的網站列,但仍然無法弄清楚如何做到這一點。有沒有人在早些時候實施過請分享您的專業知識。提前致謝。如何將名爲「類型(鏈接到文檔的圖標)」的文檔庫列添加到列表視圖中?

回答

0

就開箱即用功能而言,您無法直接實現這樣的列。類型(鏈接到文檔的圖標)使用計算的字段類型。設置這些,特別是對於一個簡單的目標來說,這是非常複雜的,並且需要部署解決方案。但是,還有其他方法可以實現這一點。

你想要達到的基本目標基本上是一個鏈接圖片。 URL字段的超鏈接功能和圖片功能的組合。您可以採取兩種方法,無需部署解決方案即可完成此任務。我會列出兩者,你可以嘗試你認爲更符合你的口味的那一種或兩種。


方案一:URL字段的修改

這其中涉及到更改位於您的SharePoint服務器上的12蜂巢的FLDTYPES.XML。自然,建議您在執行此操作之前先備份當前文件。 FLDTYPES.XML位於\ Program Files \ Common Files \ Microsoft Shared \ Web Server Extensions \ 12 \ TEMPLATE \ XML。通過此更改,我們可以使用SharePoint UI中的默認URL字段(在配置爲顯示HyperLink時)在特定情況下顯示圖片。

將文件備份爲FLK文件FLDTYPES.OLD或什麼都可以,然後在文本編輯器中打開FLDTYPES.XML並搜索URL字段。行<Field Name="TypeName">URL</Field>將在一開始,所以只是搜索。現在,在大字段類型定義中將是一個字段開關。除了我現在手動添加的評論,它看起來像下面這樣。

<FieldSwitch> 
    <Expr><Property Select="Format"/></Expr> 
    <Case Value="Image"> 
     <FieldSwitch> 
      <Expr><Property Select="Width"/></Expr> 
      <Case Value=""> 
       <HTML><![CDATA[<IMG SRC="]]></HTML><Column HTMLEncode="TRUE"/><HTML>" ALT="</HTML><Column2 HTMLEncode="TRUE"/><HTML><![CDATA[">]]></HTML> 
      </Case> 
      <Default> 
       <HTML><![CDATA[<IMG SRC="]]></HTML><Column HTMLEncode="TRUE"/><HTML>" ALT="</HTML><Column2 HTMLEncode="TRUE"/><HTML><![CDATA[" WIDTH="]]></HTML><Property Select="Width"/><HTML><![CDATA[" HEIGHT="]]></HTML><Property Select="Height"/><HTML><![CDATA["> ]]></HTML> 
      </Default> 
     </FieldSwitch> 
    </Case> 
    <Default> 
     <HTML><![CDATA[<A HREF="]]></HTML><Column HTMLEncode="TRUE"/><HTML><![CDATA[">]]></HTML> 
     <Switch> 
      <Expr><Column2/></Expr> 
      <Case Value=""> 
       <Column HTMLEncode="TRUE"/> 
      </Case> 
      <Default>       
       <Column2 HTMLEncode="TRUE"/> <!-- This is where we work -->    
      </Default> 
     </Switch> 
     <HTML><![CDATA[</A>]]></HTML> 
    </Default> 
</FieldSwitch> 

現在,我們希望在我把評論就行更換<Column2 HTMLEncode="TRUE"/>。這是設置爲「超鏈接」時顯示URL字段的邏輯,並填寫了說明,該說明目前只顯示該說明。我們希望對其進行更改,以便當此描述是圖片的網址時,它會顯示該圖片。以下是我使用的一個例子。

<Switch> 
    <Expr> 
     <GetFileExtension> 
      <Column2/> 
     </GetFileExtension> 
    </Expr> 
    <Case Value="pnG"> 
     <HTML><![CDATA[<IMG STYLE="border:0" SRC="]]></HTML> 
     <Column2 HTMLEncode="TRUE"/> 
     <HTML><![CDATA[">]]></HTML> 
    </Case> 
    <Default> 
     <Column2 HTMLEncode="TRUE"/> 
    </Default> 
</Switch> 

基本上,它將該描述作爲文件名,檢查它是否具有延伸部,並且在匹配的情況下,它會呈現爲沒有邊框的圖像。現在,我使用pnG,因爲此開關大小寫比較區分大小寫,但圖像的源url不是。因此,當我創建一個字段並將描述指定爲「/_layouts/images/FlagRed.pnG」時,它會顯示已保存爲「/_layouts/images/FlagRed.png」的FlagRed圖片。這樣,當我想要顯示一個實際的圖像文本url,那麼我可以不用大寫結尾。當然,您必須用case語句中的「pnG」替換您使用的任何文件擴展名,並在有更多的時候添加額外的案例。完成後保存文件。

之後,所有設置,在機器上運行IISRESET。一旦完成,您的URL字段現在將能夠呈現圖像鏈接。創建新的URL字段時,您需要執行的操作是將其指定爲HyperLink類型,將目標鏈接作爲URL並將圖像源URL作爲描述。以與使用任何其他字段類型相同的方式將URL列添加到列表視圖。


方案二:計算HTML字段

而是與服務器搞亂,你可以改用一些JavaScript的一個內容編輯器Web部件。基本上,使用列表視圖在頁面上插入內容編輯器Web部件,確保它位於列表視圖下方。通過在此CEWP中輸入腳本,您可以運行它來更改列表視圖的顯示。這種特殊情況下,我們使用一個腳本,它允許HTML在計算列中呈現爲HTML。

以下應該包含獲取腳本所需的全部資源:Using Calculated Columns to Write HTML。這裏有很多閱讀,但是從實現這個腳本中可以獲得很多潛力,所以我推薦它。當你最終用腳本設置CEWP時,我們需要在你的列表中有兩個字段。

  • 其中一個是文本字段,它不會顯示在您的列表視圖中,但會顯示在您的編輯表單中。這將是他們指定超鏈接路徑的地方。
  • 然後,您需要創建一個以單行文本形式輸出的計算列。使用類似以下的公式:=CONCATENATE("<a href='",{0},"'><img src='",{1},"' style='border:0' /></a>")
    • 將{0}替換爲您在方括號中創建的文本字段的名稱。所以,如果你稱之爲「路徑」,那麼它應該是[路徑]。
    • 將{1}替換爲圖標的圖像源網址。如果圖像有多個選項,則必須添加另一個文本字段來指定圖像url,或者使用一些IF邏輯。檢查this article以獲得計算列公式的語法來設置該邏輯。

計算列添加到您的列表視圖。現在,當填寫文本字段時,您將獲得圖像鏈接。


希望至少有一個這兩個幫助!

相關問題