Problème d'affichage des valeurs de propriété personnalisées pour les types de champs personnalisés SharePoint

StackOverflow https://stackoverflow.com/questions/608031

Question

J'essaie de créer un type de champ personnalisé dans SharePoint (WSS 3.0) qui possède des propriétés personnalisées. J'ai créé mon fichier fldtypes * .xml basé sur les documents du SDK et cet article de blog . Il semble que le rendu soit correct et que je peux récupérer les valeurs des propriétés personnalisées dans mon code. Mon problème est qu'après la création initiale du champ, si je retourne à la page des paramètres de la liste et clique sur mon champ nouvellement ajouté, le formulaire affiche mes propriétés personnalisées avec une valeur que je ne lui fournit pas. Par exemple, si le nom d'affichage de ma propriété personnalisée est " Mon objet personnalisé " la valeur dans sa zone de texte sera alors "Valeur de mon champ Prop. personnalisé".

Ma question est la suivante: comment afficher correctement les valeurs de chaîne de mes types de propriétés personnalisées dans ces zones de texte?

Voici mon fichier fldtypes * .xml:

<?xml version="1.0" encoding="utf-8"?>
<FieldTypes>
  <FieldType>
    <Field Name="TypeName">MyCustomField</Field>
    <Field Name="TypeDisplayName">My Custom Field</Field>
    <Field Name="TypeShortDescription">MyCustomField</Field>
    <Field Name="ParentType">Text</Field>
    <Field Name="UserCreatable">TRUE</Field>
    <Field Name="FieldTypeClass">MyCustomField.CustomFields.MyCustomField, MyCustomField, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d772gbab82fe6996</Field>
    <PropertySchema>
      <Fields>
        <Field Name="MyCustomProp" DisplayName="My Custom Prop" Type="Text" MaxLength="50" DisplaySize="30" />
      </Fields>
    </PropertySchema>
  </FieldType>
</FieldTypes>

Et voici le code de ma classe de type de champ:

public class MyCustomField : SPFieldText
{
    private string propval;

    public MyCustomField(SPFieldCollection fields, string fieldName)
        : base(fields, fieldName)
    {
    }

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

    public override void Update()
    {
        // I can see any updated value here
        propval = GetCustomProperty("MyCustomProp") as string;
        base.Update();
    }

    public override Type FieldValueType
    {
        get { return typeof (string); }
    }

}

Que puis-je faire pour afficher les valeurs correctes des propriétés personnalisées dans la colonne "Changer de colonne" " page (FldEditEx.aspx) dans mon application SharePoint?

Était-ce utile?

La solution

Il existe un problème bien connu avec enregistrement et récupération de propriétés personnalisées sur un type de champ personnalisé. Voici un lien direct vers les contourner .

btw, certains des commentaires sur le post prétendent avoir le même problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top