解决Custom Field Type修改时属性显示不正确的问题

我们在MOSS里做自定义字段,会用到属性,比如文本框的最大长度MaxLength等,这种简单的属性通过XML定义来实现
比如:
< PropertySchema >
    
< Fields >
        
< Field  Name ="Remark"  DisplayName ="remark:"  Required ="FALSE"  Type ="Text" >
            
< Default >
            
</ Default >
        
</ Field >
    
</ Fields >
</ PropertySchema >

然后我们在代码里通过 GetCustomProperty("Remark")方法来得到。
我们做好自定义字段后,使用中完全是正常的,但是,如果你要修改这个字段的属性,那么你会发现,在修改界面,MOSS显示的属性是错误的,如下图,我现在没MOSS环境,到11网站抓了个图片^_^
解决Custom Field Type修改时属性显示不正确的问题
MOSS并没有把属性显示成我们设定的值,而是显示了描述。。。

要解决这个问题也简单,有两种方法:
一种方法是使用一个UserControl(如:myFieldEditor.ascx),然后继承UserControl, IFieldEditor,然后重载InitializeWithField,OnSaveChange,DisplayAsNewSection
,和其它一些代码来实现,然后保存到controltemplates目录中,然后要在字段的XML定义中加上这个东西
< Field  Name ="FieldEditorUserControl" >
/_controltemplates/myFieldEditor.ascx
</ Field >
然后……具体方法请参考下SDK。什么?嫌麻烦?恩,是挺麻烦的,那就用第二种方法->
第二种方法就是。。。打补丁,嘿嘿,打了补丁就好了。微软已经出了KB,其中可以解决的一个问题就是这个问题,KB下载请 下载Windows SharePoint Services 3.0 更新 (KB941422)  【更新:现在打SP1吧】

按照习惯,来个QQ表情:

你可能感兴趣的:(Field)