这个字段是一个普通的Single line of text,作用就是显示一个Checkbox,checkbox 的value为这个Text字段的值。
效果图:
下面介绍制作过程:
1. 首先,写一个派生自标准Field Type的类,
1
public class SPCheckboxField : SPFieldText
2
}
2
2. 写一个UC 命名为CheckboxField.ascx:
1
>
3. 写一个对应CheckboxField.ascx 的类:
1
public class CheckboxFieldControl : BaseFieldControl
2
}
2
4. 写一个xml:
fldtypes_CheckboxField.xml注意名字必须以fldtypes_开头.
1
<?xml version="1.0" encoding="utf-8"?>
2
<FieldTypes>
3
<FieldType>
4
<Field Name="TypeName">CheckboxField</Field>
5
<Field Name="ParentType">Text</Field>
6
<Field Name="TypeDisplayName">Checkbox Field</Field>
7
<Field Name="TypeShortDescription">Checkbox Field</Field>
8
<Field Name="UserCreatable">TRUE</Field>
9
<Field Name="ShowInListCreate">TRUE</Field>
10
<Field Name="ShowInSurveyCreate">TRUE</Field>
11
<Field Name="ShowInDocumentLibraryCreate">TRUE</Field>
12
<Field Name="ShowInColumnTemplateCreate">TRUE</Field>
13
<Field Name="Sortable">FALSE</Field>
14
<Field Name="AllowBaseTypeRendering">TRUE</Field>
15
<Field Name="Filterable">FALSE</Field>
16
<Field Name="FieldTypeClass">CheckboxCustomField.SPCheckboxField,CheckboxCustomField,Version=1.0.0.0,Culture=neutral,PublicKeyToken=5acbdc949ff711be</Field>
17
<RenderPattern Name="DisplayPattern">
18
<Switch>
19
<Expr>
20
<Column/>
21
</Expr>
22
<Case Value="">
23
</Case>
24
<Default>
25
<HTML><![CDATA[<input type='checkbox' name='my_select' value=']]></HTML>
26
<Column HTMLEncode="TRUE"/>
27
<HTML><![CDATA[' />]]></HTML>
28
</Default>
29
</Switch>
30
</RenderPattern>
31
</FieldType>
32
</FieldTypes>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
都是些配置的信息,最主要显示的部分是这里:
1
<HTML><![CDATA[<input type='checkbox' name='my_select' value=']]></HTML>
2
<Column HTMLEncode="TRUE"/>
3
<HTML><![CDATA[' />]]></HTML>
2
3
5. 这样就OK了,开始部署:
1) 将编译后dll放入GAC
2) 把UC放到C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES
3) 把xml放到C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\XML
4) 重启IIS
在create column会看到我们的Checkbox Field:
红色的就是这个custom field type,蓝色的是陈曦那个。