码迷,mamicode.com
首页 > 其他好文 > 详细

扩展SharePoint链接字段

时间:2015-12-21 12:40:21      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

默认SharePoint中的链接字段有很多限制,例如

输入文字的时候只能录入255个字符

链接显示的是文字

点击链接后只能在当前页面打开链接

… … … … … … …… … … … … … …

?

不过,我们不是可以自己动手不是,看看下面的效果

技术分享

?

技术分享

?

具体的代码可以在GitHub这里下载,也可以到百度云的这里下载,下面将其中主要的实现点说道说道

技术分享

?

结构说明

  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

扩展SharePoint链接字段

标签:

原文地址:http://www.cnblogs.com/zygoses2gether/p/5062794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!