2008-12-29 3 views
1

Le champ "Titre" est scellé. Toute tentative de mise à jour de la valeur par défaut réinitialise la valeur à "null"Comment mettre à jour la valeur par défaut du champ "Titre" dans le type de contenu "Document" ou les types hérités de celui-ci


Merci pour votre temps. Votre idée de faire "RemoveFieldRef et FieldRef" est la même que de définir les propriétés "Required" et "Default Value" à travers l'interface pour le "Document" ou les types de contenu hérités bien que votre idée aiderait si nous construisons des types de contenu personnalisés.

La définition de "Titre" sur "requis" ne fonctionne pas dans toutes les situations. Une telle situation est lorsque vous essayez d'ajouter un élément via "Nouveau" (qui dans mon cas ouvre un modèle basé sur Office 2007). Étant donné que le champ "Titre" requis me donnait du fil à retordre, je voulais essayer la route "DefaultValue", mais même celle-ci ne semble pas fonctionner. De l'aide?

Répondre

1

Voici ce que nous avons trouvé pour « Titre »:

  • Le champ « Titre » est pas scellé dans fieldwss.xml (12 \ TEMPLATE \ FEATURES \ champs)
  • Ce n'est pas scellé sous « document » type de contenu dans ctypeswss.xml (12 \ TEMPLATE \ FEATURES \ ctypes)
  • Il est scellé dans la définition de la bibliothèque de documents dans le schema.xml (12 \ TEMPLATE \ FEATURES \ DocumentLibrary \ doclib)

Paramètre Valeur par défaut par l'OM rétablir la valeur NULL du type de contenu .Update(). C'est parce que "Title" est scellé dans la définition DL.

Ouvert d'une demande de service avec MS. En attente des résultats !!!

+0

Aucune mise à jour de MS encore !!! – Ganesha

3

Vous pouvez supprimer RemoveFieldRef et FieldRef. En fait, le type de contenu de document fait cela lui-même pour rendre le titre non requis. Dans le fichier ctypeswss.xml par défaut, aucun attribut sealed n'est défini sur le type de contenu Document.

Extrayez [12] \ TEMPLATE \ FEATURES \ CTypes \ ctypeswss.xml et faites défiler jusqu'à la ligne 32 pour voir comment le type de contenu le fait.

.B

(Disclaimer: Je suis une forte fièvre, donc si je ne fais pas de sens, blâmer les sucettes en cours d'exécution dans ma cuisine)

0

Hm ... Si vous n'êtes pas faire des types de contenu personnalisé alors je suggérerais de faire ce que vous voulez à travers un récepteur de fonctionnalités. Vous pouvez attacher ce récepteur au type de contenu de document par défaut et gérer vos colonnes comme vous le souhaitez, par exemple en définissant des valeurs par défaut ou en définissant uniquement des valeurs par défaut si aucune valeur utilisateur n'a été fournie.

.B

0

Cette approche fonctionne pour tous les champs, sauf pour le champ « Titre » caché qui semble vraiment spécial

+0

Je commence à penser que vous avez quelque chose de vraiment étrange mis en place si vous avez tous les deux le titre mis à caché et caché. Dans une configuration par défaut, il n'y a rien qui cache ou scelle le champ de titre. Notez que vous devez mettre à jour SPListItem ["Title"] et non SPListItem.Title car ce dernier est en lecture seule. –

2

faire avec un Reciever de l'événement que vous enregistrez avec le type de contenu des articles ajoutés et articles Evénements mis à jour De cette façon, chaque fois qu'un nouvel élément est ajouté, il peut être donné votre titre par défaut. Vous pouvez vous inscrire Recievers événement dans le type de contenu CAML comme tel:

<ContentType ...> 
    <FieldRefs> 
     <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="My Title" Required="FALSE" ShowInDisplayForm="FALSE" ShowInNewForm="FALSE" ShowInEditForm="FALSE" ShowInListSettings="FALSE"/> 
    </FieldRefs> 
    <XmlDocuments> 
     <XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/events"> 
     <Receivers> 
      <Receiver> 
      <Name>TitleCreator</Name> 
      <Type>ItemAdded</Type> 
      <Assembly>...</Assembly> 
      <Class>TitleCreatorItemEventReceiver</Class> 
      </Receiver> 
      <Receiver> 
      <Name>TitleCreator</Name> 
      <Type>ItemUpdated</Type> 
      <SequenceNumber>1</SequenceNumber> 
      <Assembly>...</Assembly> 
      <Class>TitleCreatorItemEventReceiver</Class> 
      </Receiver> 
     </Receivers> 
     </XmlDocument> 
    </XmlDocuments> 
    </ContentType> 
+0

devrait être possible pour presque tous les domaines. Le "Titre" par défaut est une véritable exception. Voir ci-dessous pour l'explication – Ganesha

Questions connexes