惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
博客园 - Franky
MyScale Blog
MyScale Blog
Jina AI
Jina AI
B
Blog
Microsoft Security Blog
Microsoft Security Blog
T
Troy Hunt's Blog
博客园_首页
T
Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
Lohrmann on Cybersecurity
GbyAI
GbyAI
T
Tenable Blog
B
Blog RSS Feed
S
Securelist
T
Threat Research - Cisco Blogs
P
Privacy International News Feed
P
Proofpoint News Feed
T
The Exploit Database - CXSecurity.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
雷峰网
雷峰网
C
CXSECURITY Database RSS Feed - CXSecurity.com
罗磊的独立博客
AWS News Blog
AWS News Blog
V
V2EX
宝玉的分享
宝玉的分享
J
Java Code Geeks
小众软件
小众软件
Spread Privacy
Spread Privacy
腾讯CDC
Google Online Security Blog
Google Online Security Blog
月光博客
月光博客
V
Visual Studio Blog
The Hacker News
The Hacker News
C
CERT Recently Published Vulnerability Notes
Project Zero
Project Zero
Know Your Adversary
Know Your Adversary
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
NISL@THU
NISL@THU
C
Check Point Blog
Webroot Blog
Webroot Blog
D
DataBreaches.Net
Cloudbric
Cloudbric
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家

博客园 - Andy Yang

SharePoint中Event Handler的触发 树莓派的连接 树莓派版的家用NAS服务器 修改树莓派更新源及设置代理配置 开启树莓派的硬件看门狗功能 树莓派上安装2.8寸TFT触摸屏 树莓派上使用蚂蚁矿机挖矿 如何编译树莓派内核 代码导出Reporting Services报表文件 Bit-Coin收入的一分钱 如何在树莓派上运行雷神之锤III 新树莓派入手 如何通过PowerShell在Visual Studio的Post-build中预热SharePoint站点 将SharePoint 2010的快速启动改成弹出菜单样式 在SharePoint 2010的Team Site首页上显示Flash文件 SharePoint 2010搜索起步(下) SharePoint 2010搜索起步(上) 2009上班第一天 软件开发与心理张力
扩展SharePoint链接字段
Andy Yang · 2015-12-21 · via 博客园 - Andy Yang

默认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