擴展SharePoint連接字段

默認SharePoint中的連接字段有不少限制,例如 git

輸入文字的時候只能錄入255個字符 github

連接顯示的是文字 數據庫

點擊連接後只能在當前頁面打開連接 網站

… … … … … … …… … … … … … … url

 

不過,咱們不是能夠本身動手不是,看看下面的效果 spa

 

 

具體的代碼能夠在GitHub這裏下載,也能夠到百度雲的這裏下載,下面將其中主要的實現點說道說道 xml

 

結構說明 blog

  1. CONTROLTEMPLATES:映射到SharePointC:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATES目錄

    ImageHyperlinkFieldControl.ascx:自定義列中控件定義描述 圖片

  2. XML:映射到SharePointC:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML目錄

    fldtypes_ImageHyperlinkField.xml:自定義列的顯示描述 字符串

  3. XSL:映射到C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\XSL目錄

    fldtypes_ImageHyperlinkField.xsl:自定義列在列表中的顯示效果描述

  4. ImageHyperlink.Field.cs:自定義列代碼控制,其中GetValidatedString方法用來獲取保存到SharePoint中數據的內容
  5. ImageHyperlink.FieldControl.cs:自定義列內容代碼控制,其中OnLoad方法用以控制在顯示和編輯自定義列時候的行爲
  6. ImageHyperlinkValidationRule.cs:(預留擴展)用以添加額外的校驗控制邏輯

 

代碼說明

如何將很長的連接字符"存入"SharePoint?

參看ImageHyperlink.Field.cs和ImageHyperlink.Field.cs兩個文件

兩方面:存儲的時候將字符串簡化;顯示的時候又將簡化的字符串還原。

簡化和還原無非是在外部新建一個數據庫的存儲表,用以記錄長和短字符串的對應關係(當前代碼中沒有實現);

不過,有一個方法(MakeTinyUrl)也能夠參考,使用的是tinyurl.com網站提供的服務,能夠將長連接發送給網站,網站返回一個短連接。

 

如何顯示圖片及新開一個頁面?

參看fldtypes_ImageHyperlinkField.xsl文件

這個更加簡單,就在XSL文件中修改如下兩處便可

<a href="{$url}" target="_blank">

<img src="{$desc}" style="border:none"/>

 

打完收工!

 

Andy Yang

2015.12.21