我正在使用列表視圖。我想要一個列看起來類似於名爲「類型(鏈接到文檔的圖標)」列的文檔庫列。我也應該能夠設置這個超鏈接圖標應該打開的路徑。我嘗試了很多與現有的網站列,但仍然無法弄清楚如何做到這一點。有沒有人在早些時候實施過請分享您的專業知識。提前致謝。如何將名爲「類型(鏈接到文檔的圖標)」的文檔庫列添加到列表視圖中?
回答
就開箱即用功能而言,您無法直接實現這樣的列。類型(鏈接到文檔的圖標)使用計算的字段類型。設置這些,特別是對於一個簡單的目標來說,這是非常複雜的,並且需要部署解決方案。但是,還有其他方法可以實現這一點。
你想要達到的基本目標基本上是一個鏈接圖片。 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以獲得計算列公式的語法來設置該邏輯。
計算列添加到您的列表視圖。現在,當填寫文本字段時,您將獲得圖像鏈接。
希望至少有一個這兩個幫助!
- 1. 將列表文檔鏈接到列表中
- 2. 如何將文件鏈接到文檔?
- 3. 如何從Sharepoint列表項目鏈接到文檔庫中的文件夾?
- 4. 如何將圖像列表從URL數組添加到文檔中?
- 5. OpenXML:將圖像添加到文檔
- 6. 將圖像添加到現有文檔
- 7. 如何將文件的內容添加到列表視圖C#
- 8. 如何將圖像列表添加到WPF列表視圖?
- 9. 如何將條形圖添加到OpenXML創建的文檔中
- 10. 將文本視圖添加到列表視圖
- 11. 如何將SharePoint列表鏈接到地圖? (將地圖鏈接到SharePoint列表)
- 12. 如何動態地添加Ajax鏈接到列表視圖
- 13. 如何將文檔鏈接添加到Geneos Alert或Rule?
- 14. 如何使用C#將主文件添加到列表視圖?
- 15. Sharepoint 2013 - 如何將文檔作爲匿名用戶附加到文檔庫
- 16. 將文件添加到C#中的列表視圖
- 17. 將縮略圖鏈接到視頻文件,並添加標題
- 18. 使用List服務將文檔添加到Sharepoint 2010文檔列表
- 19. 使用PowerShell在SharePoint共享文檔列表中創建'鏈接到文檔'
- 20. 添加標題到Android列表視圖
- 21. 如何將文檔類型添加到XDocument?
- 22. 如何將列添加到視圖?
- 23. 將子文檔添加到同一文檔中的數組中
- 24. 將標題添加到Word文檔?
- 25. 如何將「long」文檔添加到CouchDB?
- 26. 如何將超鏈接添加到Fusion Tables中的文本列?
- 27. 如何將超鏈接添加到.rdl文件中的列
- 28. 如何將光標數據(DbHandler.java)添加到列表視圖(MainActicity.java)?
- 29. 如何以編程方式將文檔添加到SharePoint中的列表?
- 30. 將文本添加到線程的列表視圖