Sharepoint FieldType RenderPattern 的显示问题

自定义Field表现方式与RenderPattern技巧
本文探讨了在自定义FieldType时如何利用RenderPattern实现灵活的表现方式,包括使用Switch、Foreach、Property和GetVal等方法。讨论了RenderPattern的优缺点,并对比了直接在Render方法中写输出的效率和影响。最后介绍了如何利用FieldControl和UserControl来简化Edit、New和Render操作。

1.自定义的FieldType的显示一般通过RenderPattern来输出。

这种方法支持很多附加的表现方式,使用Switch, Foreach,Property="PName", GetVal等(看系统fieldType里面的)。

而且只是在XML里面作的处理,即可以不重新编译就改变表现方式。看系统里面甚至用这个写很多的js出来。

2.RenderPattern有点难写。至少我觉得如此,CAML写东西,甚至访问Property,写得来没有C#代码爽。

如果是发布出去太多人用的,微软的,我觉得还算可以那样写。DLL不用经常修改就可以改表现。但自己用的代码,还是想直接写Render算了,用C#代码来处理各自条件。

3.FieldControl继承自UserControl,所以可以用UserControl的方法来写Edit,写New,写Render。

根据Control的Mode来处理各种情况就可以了。

之前看一个MultiMediaField,在Render方法里面,根据是否Diplay状态来写一些东西。

而CreateChildControl里面,也会在Display状态就直接返回,不再创建子控件。

直接Render了,在DisplayPattern里就只需要定义,其它什么也不用写了。

4.直接在Render方法里写输出,会多输出一个 

这算是一个Bug,至少在UI上来说,经常造成影响的一个问题,多输出的 还会在前面,影响UI表现。

5.RenderForDispaly是较好的选择

只在Display状态会出现。Render里就可以不必写什么代码了。XML里也不必再有DisplayPattern。

直接在这里处理各种情况来Render输出好了。不执行base.RenderForDispaly,不然会输出默认的Render结果以及讨厌的 网上甚至有文章,在这里把内容Get出来,再把这个&nbsp给删除掉。

转载于:https://www.cnblogs.com/TNSSTAR/archive/2013/03/13/2957081.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值