Question

Dans l'interface utilisateur, je peux naviguer dans un ContentType paramètres -> Informations sur le document Paramètres du panneau -.> Et ensemble « Toujours afficher » true (marquer la case à cocher)

Comment mettre en i cette option par le code? (Ou dans un defition de contenttype dans une option)

Était-ce utile?

La solution

Ces informations sont stockées en tant XmlDocument dans le type de contenu. Le SPContentType possède une propriété appelée XmlDocuments qui est une collection d'objets XmlDocument. Vous pouvez obtenir le contenant Xml l'info comme ceci;:

string xml = contentType.XmlDocuments["http://schemas.microsoft.com/office/2006/metadata/customXsn"];

Cette chaîne contient Xml. Pour le DIP, vous devriez vérifier l'élément /customXsn/openByDefault. Une valeur de moyens de True que le DIP est affiché, vide ou False ne le montrer.

Pour modifier cela, vous devez récupérer le Xml, modifiez la valeur, retirez le XmlDocument courant du type de contenu et ajoutez votre xml nouvellement construit et enfin mettre à jour. Comme ceci:

string schema = "http://schemas.microsoft.com/office/2006/metadata/customXsn";
// load old settings
string xml = contentType.XmlDocuments[schema];
// load it in an Xml Document
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("xsn",schema);
// get the DIP info node
XmlNode node = doc.SelectSingleNode("/xsn:customXsn/xsn:openByDefault", nsmgr);
// Set it to true
node.InnerText = bool.TrueString;
// delete the old one
contentType.XmlDocuments.Delete(schema);
// add the new xml
contentType.XmlDocuments.Add(doc);
// update the CT
contentType.Update();

Autres conseils

En attendant, je trouve la solution « de définition de fonction » (grâce à SharePoint Manager). Ajouter le code XML suivant à la définition de ContentType dans le fichier des éléments:

<XmlDocuments>
  <XmlDocument NamespaceURI="http://schemas.microsoft.com/office/2006/metadata/customXsn">
    <customXsn xmlns="http://schemas.microsoft.com/office/2006/metadata/customXsn">
      <xsnLocation></xsnLocation>
      <cached>True</cached>
      <openByDefault>True</openByDefault>
      <xsnScope></xsnScope>
    </customXsn>
  </XmlDocument>
</XmlDocuments>
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top