0

Я хочу, чтобы создать пользовательский тип поля, основанный на поле Choice в SharePoint 2010. Мой код: Fldtypes_OpenChoiceField.xml:Как добавить Standart настройки от выбора поля в новом пользовательском поле на основе Выбор типа

OpenChoiceField.cs:

namespace FieldTypes.SharePoint 
{ 
    public class OpenChoiceField : SPFieldChoice 
    { 
     public OpenChoiceField(SPFieldCollection fields, string fieldName) 
      : base(fields, fieldName) 
     { 
     } 

     public OpenChoiceField(SPFieldCollection fields, string typeName, string displayName) 
      : base(fields, typeName, displayName) 
     { 
     } 
    } 
} 

Когда я создаю столбец с типом настраиваемого поля я вижу в разделе Дополнительные параметры столбца только настройки по умолчанию (описание, требуется, применять уникальный, добавить по умолчанию вид). Но мне нужно, чтобы все настройки были в поле «Выбор» (введите каждый выбор ..., «Выбор экрана», «Разрешить выбор», значение по умолчанию). Как вставить эти свойства в пользовательское поле? Может понадобиться добавить стандартные элементы управления для редактирования элемента управления (/_controltemplates/Fields_SharePoint/OpenChoiceFieldEditor.ascx)?

ответ

1

Если вы хотите хороший пример пользовательского поля, перейдите по этому адресу: blog от Bernado Nguyen-Hoan.

Вы должны добавить пользовательские свойства к вашему XML, как например:

<?xml version="1.0" encoding="utf-8" ?> 
<FieldTypes> 
    <FieldType> 
    <Field Name="TypeName">ImageUpload</Field> 
    ... 
    ... 
    <PropertySchema> 
     <Fields> 
     <Field 
      Name="UploadImagesTo" 
      DisplayName="UploadImagesTo" 
      MaxLength="255" 
      DisplaySize="100" 
      Type="Text" 
      Hidden="TRUE"> 
      <Default>Images</Default> 
     </Field> 
     </Fields> 
    </PropertySchema> 
    </FieldType> 
</FieldTypes> 

Вы также должны переопределить метод Update в вашем OpenChoiceFieldClass:

public override void Update() 
{ 
    base.SetCustomProperty("UploadImagesTo", 
    Thread.GetData(Thread.GetNamedDataSlot("UploadImagesTo"))); 

    base.Update(); 
} 

В блоге также будет покажите вам, как настроить собственный пользовательский элемент управления и редактор для этого поля.

Смежные вопросы