zoukankan      html  css  js  c++  java
  • 扩展SharePoint链接字段

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

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

    链接显示的是文字

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

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

     

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

     

     

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

     

    结构说明

    1. CONTROLTEMPLATES:映射到SharePointC:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14TEMPLATECONTROLTEMPLATES目录

      ImageHyperlinkFieldControl.ascx:自定义列中控件定义描述

    2. XML:映射到SharePointC:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14TEMPLATEXML目录

      fldtypes_ImageHyperlinkField.xml:自定义列的显示描述

    3. XSL:映射到C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14TEMPLATELAYOUTSXSL目录

      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

  • 相关阅读:
    Axis2、Axis1 以及其他接口的调用方式
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
    百度、谷歌、雅虎网站地图提交地址
    MyEclipse 死掉,JVM terminated. Exit code=1073807364
    有关Servlet的面试题
    SpringMVC文件的上传与下载实现
    Java API 操作HBase Shell
    Java内存模型与线程(二)线程的实现和线程的调度
    Java内存模型与线程(一)
    ubuntu环境下搭建Hadoop集群中必须需要注意的问题
  • 原文地址:https://www.cnblogs.com/zygoses2gether/p/5062794.html
Copyright © 2011-2022 走看看