So, you’ve created a new custom Field (or column) type, but you don’t want it to be available to add directly to Lists and Libraries – that is, you want to force users to create columns as Site Columns, and add those to the list. Conversely, maybe you want to prevent a column being created as a Site column, and only available to add directly to lists (though I can’t thinik why).
Well, it turns out that that is possible. In the CAML defining your field in fldtypes_???.xml, you can have something like the following:
<FieldTypes> <FieldType> <Field Name="TypeName">MyCustomField</Field> <Field Name="ParentType">MultiChoice</Field> <Field Name="TypeDisplayName">My Custom Field</Field> <Field Name="ShowOnColumnTemplateCreate">TRUE</Field> <Field Name="ShowOnListCreate">FALSE</Field> <Field Name="ShowOnDocumentLibraryCreate">FALSE</Field> <Field Name="ShowOnSurveyCreate">FALSE</Field> <Field Name="Sortable">FALSE</Field> <Field Name="Filterable">TRUE</Field> <Field Name="ShowInEditForm">FALSE</Field> <Field Name="UserCreatable">TRUE</Field>
ShowOnColumnTemplateCreate controls visibility as a Site Column type. The other ‘Show On X’ values control visibility as a List Column Type for different types of List. You could, therefore, have a Column Type that can only be used on, say, Document Libraries. Hope that helps.
Can you please let me know
Is there any property to show column type only for Task List??
Not that I’m aware of. Good question though.