Erzwingen Sie das Dokumentinformationsbereich, um mit Code oder vorgeschriebener Dezieranlage anzuzeigen

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/1834

  •  16-10-2019
  •  | 
  •  

Frage

In der Benutzeroberfläche kann ich in die Einstellungen für ContentType -Einstellungen -> Einstellungen für das Dokumentinformationsbereich -> und "Immer" auf True (markieren Sie das Kontrollkästchen) einbohren.

Wie setze ich diese Option über Code ein? (oder in einem ContentType -Defition in einer Funktion)

War es hilfreich?

Lösung

Diese Informationen werden als als gespeichert XmlDocument im Inhaltstyp. Das SPContentType hat eine Eigenschaft namens namens XmlDocuments Welches ist eine Sammlung von XmlDocument Objekte. Sie können die XML mit solchen Informationen erhalten ;:

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

Diese Zeichenfolge enthält XML. Für den Dip sollten Sie das überprüfen /customXsn/openByDefault Element. Ein Wert von True bedeutet, dass der Dip gezeigt wird, leer oder False werde es nicht zeigen.

Um dies zu ändern, müssen Sie den XML abrufen, den Wert ändern, das aktuelle XMLDOCument aus dem Inhaltstyp entfernen und Ihre neu konstruierte XML hinzufügen und schließlich aktualisieren. So was:

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();

Andere Tipps

In der Zwischenzeit habe ich die Lösung "Feature Definition" gefunden (dank SharePoint Manager). Fügen Sie der ContentType -Definition in der Elemente -Datei den folgenden XML hinzu:

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top