ドキュメント情報パネルにコードまたはfouturedefinitionで表示するように強制します

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

  •  16-10-2019
  •  | 
  •  

質問

UIでは、ContentType設定にドリルダウンすることができます - > [ドキュメント情報]パネル設定 - >および「show always」をtrueに設定します(チェックボックスのマーク)。

このオプションをコードで設定するにはどうすればよいですか? (または機能内のContentType defition)

役に立ちましたか?

解決

この情報は、として保存されます XmlDocument コンテンツタイプ。 SPContentType 呼ばれるプロパティがあります XmlDocuments これはのコレクションです XmlDocument オブジェクト。このような情報を含むXMLを入手できます;:

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

この文字列にはXMLが含まれています。ディップについては、確認する必要があります /customXsn/openByDefault エレメント。の値 True ディップが表示されることを意味します False 見せません。

これを変更するには、XMLを取得し、値を変更し、現在のXMLDocumentをコンテンツタイプから削除し、新しく構築されたXMLを追加して最後に更新する必要があります。このような:

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

他のヒント

それまでの間、「機能定義」ソリューションを見つけました(SharePoint Managerのおかげです)。次のXMLを要素ファイルのContentType定義に追加します。

<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>
ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top