让SharePoint计算字段显示Html

最近有个需求,将不同的内容类型组织到同一个列表(不是文档库)中,希望能够给不同的内容类型显示不同的图标。不过SharePoint内容类型似乎没有关于图标的设置,翻了ContentType的SchemaXml和若干个xml配置文件都没找到相关的办法。

今天突然想到了计算字段,猜测大概能做到这一点,不过计算字段只能显示单行文本、数值、是/否等几种固定类型,不能显示html内容,我觉得可以通过修改默认的计算字段配置文件来达到这一目的。上网搜了一下,果然找到:Enabling HTML and/or Images in a SharePoint List using a calculated field

大致的方法就是控制计算字段在显示的时候的html编码,在FLDTYPES.XML中我们可以看到默认是这个样子的:

 
  
1 < Default > 2 < Column HTMLEncode ="TRUE" AutoHyperLink ="TRUE" AutoNewLine ="TRUE" /> 3 </ Default >

也就是说对于单行文本的显示方式,都是加上了HTML编码的,自然我们可以改掉这个地方,但是为了不影响其他计算字段的显示,可以用一些特定标记来判断,比如改成这样:

 
  
1 < IfSubString > 2 < Expr1 > <![CDATA[ <custom/> ]]> </ Expr1 > 3 < Expr2 >< Column /></ Expr2 > 4 < Then > 5 < HTML >< Column /></ HTML > 6 </ Then > 7 < Else > 8 < Column HTMLEncode ="TRUE" AutoHyperLink ="TRUE" AutoNewLine ="TRUE" /> 9 </ Else > 10 </ IfSubString >

这段的意思是:如果计算字段的值包含“<custom/>”(这不是一个html标签,所以页面上不会显示),那么就不编码,否则对内容进行html编码。

于是,就可以在列表中创建一个计算字段栏Icon,它的公式设置成:

 
  
1 = IF ( [内容类型] = " 类型A " , 2 " <custom/><img src='/_layouts/images/img1.gif'/> " , 3 " <custom/><img src='/_layouts/images/img2.gif'/> " )

要是支持SWITCH就更好了……

转载于:https://www.cnblogs.com/erucy/archive/2008/08/27/2416073.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值