ドキュメント情報パネルにコードまたはfouturedefinitionで表示するように強制します
-
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>
所属していません sharepoint.stackexchange