0

Ich möchte hinzufügen, benutzerdefinierte Feldtyp auf Auswahlfeld in Sharepoint 2010 Mein Code basiert erstellen: Fldtypes_OpenChoiceField.xml:Wie standart Einstellungen Auswahlfeld in neuen benutzerdefinierten Feld basierend auf Wahl Typ

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) 
     { 
     } 
    } 
} 

Wenn ich Spalte mit benutzerdefinierten Feldtyp erstellen I in Abschnitt Zusätzliche Spalteneinstellungen sehen nur Standardeinstellungen (Beschreibung, erfordern, erzwingen einzigartig, fügen Blick auf die Standardwerte). Aber ich brauche alle Einstellungen im Auswahlfeld (Geben Sie jede Auswahl ein ..., Auswahl anzeigen mit, Auswahlmöglichkeiten zulassen, Standardwert). Wie kann ich diese Eigenschaften in mein benutzerdefiniertes Feld einfügen? Darf ich einige standart Steuerelemente hinzufügen werden müssen Steuerung (/_controltemplates/Fields_SharePoint/OpenChoiceFieldEditor.ascx) zu bearbeiten?

Antwort

1

Wenn Sie ein gutes Beispiel für ein benutzerdefiniertes Feld wollen dann gehen Sie zu diesem blog von Bernado Nguyen-Hoan.

Sie die benutzerdefinierten Eigenschaften zu Ihrem xml hinzufügen müssen, wie solche:

<?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> 

Sie werden auch die Update Methode in Ihrer OpenChoiceFieldClass außer Kraft setzen müssen:

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

    base.Update(); 
} 

Der Beitrag Blog wird auch zeigen Ihnen, wie Sie Ihr eigenes benutzerdefiniertes Control und Editor für das Feld einrichten.