2009-12-15 4 views
0

J'ai un champ référencé par deux types de contenu et j'utilise du code dans un récepteur de fonction pour masquer le champ de titre. Un type de contenu hérite de l'autre mais n'ajoute rien, ne change que le nom. Ils vont avoir des flux de travail différents qui leur sont attachés. Le problème est que le code cache uniquement le champ de titre sur un type de contenu, pas le dérivé.Masquer un champ de type de contenu par programmation

SPList members = web.Lists["Inspections"]; 
SPField titleField = members.Fields["Title"]; 
titleField.ShowInNewForm = false; 
titleField.ShowInEditForm = false; 
titleField.Required = false; 
titleField.Update(); 

Répondre

1

Mise à jour d'un champ dans la liste ne fera rien pour les types de contenu des enfants, car chaque type de contenu dans une liste non le type de contenu réel lui-même, mais un enfant « silencieux ». (inspecter les identifiants de type de contenu du type dans les paramètres du site et celui du "même" type de contenu dans la liste).

utiliser la collection de type de contenu de la collection de sites au lieu, modifiez le champ et les propriétés, puis appeler la méthode de mise à jour de l'objet de type de contenu:

SPContentType.Update(true); // true means you want to push any changes made down to all child content types. 
Questions connexes