Per location view settings using SharePoint Object Model
You have to set the library.RootFolder.Properties["client_MOSS_MetadataNavigationSettings"] property to get change the per location view settings using the SharePoint Object Model.
1: using (SPSite site = new SPSite("https://blre3r15-4"))
2: {
3: //TaxonomySession session = new TaxonomySession(site);
4: using (SPWeb web = site.OpenWeb())
5: {
6: SPList library = web.Lists["shared documents"];
7: SPContentTypeCollection lsl = library.ContentTypes;
8: foreach (SPContentType contenttype in lsl)
9: {
10: Console.WriteLine(contenttype.Id.ToString());
11: }
12:
13: foreach (SPView view in library.Views)
14: {
15: Console.WriteLine(view.ID.ToString());
16: }
17: System.Xml.XmlDocument document = new System.Xml.XmlDocument();
18: //document.Load("c:\\cases\\Settings.xml");
19: document.LoadXml(library.RootFolder.Properties["client_MOSS_MetadataNavigationSettings"].ToString());
20: System.IO.StreamWriter writer = new System.IO.StreamWriter("c:\\cases\\Settings.xml");
21: writer.Write(library.RootFolder.Properties["client_MOSS_MetadataNavigationSettings"].ToString());
22: writer.Close();
23: //library.RootFolder.Properties["client_MOSS_MetadataNavigationSettings"] = document.OuterXml.ToString();
24: //library.RootFolder.Update();
25: //library.Update();
26: //web.Update();
27: Console.WriteLine(library.RootFolder.Properties["client_MOSS_MetadataNavigationSettings"].ToString());
28: SPViewCollection collection = library.Views;
29:
30: //MetadataNavigationSettings mdnSettings = MetadataNavigationSettings.GetMetadataNavigationSettings(library);
31: //mdnSettings.SettingsXml = document.OuterXml.ToString();
32: //MetadataNavigationSettings.SetMetadataNavigationSettings(library, mdnSettings);
33: //Console.WriteLine(mdnSettings.SettingsXml.ToString());
34: Console.ReadKey();
35:
36: }
37: }
1: <MetadataNavigationSettings SchemaVersion="1" IsEnabled="True" AutoIndex="True"><NavigationHierarchies><FolderHierarchy HideFoldersNode="False" />
2: <MetadataField FieldID="03e45e84-1992-4d42-9116-26f756012634" FieldType="ContentTypeId" CachedName="ContentTypeId" CachedDisplayName="Content Type">
3: <ViewSettings UniqueNodeId="0x01010070FC6B859DF4CD4FAEDD269B75BE2C8E003443C1064EC2D9489B7D978018AFFEF3">
4: <View ViewId="b0e7c6b8-7a05-4943-8323-bc7d1ab90c4a" CachedName="Test2" Index="2" CachedUrl="Shared Documents/Forms/Test2.aspx" />
5: <View ViewId="2017c43f-7b0d-4580-9d9d-d3c699b51b6a" CachedName="All Documents" Index="1" CachedUrl="Shared Documents/Forms/AllItems.aspx" />
6: <View ViewId="82185a44-dd31-4a12-91bf-da6798ff2c26" CachedName="Test1" Index="0" CachedUrl="Shared Documents/Forms/Test1.aspx" />
7: <View ViewId="c1bd6b7b-ba53-4b0f-984d-3c24886dd4f5" CachedName="Merge Documents" Index="-1" CachedUrl="Shared Documents/Forms/Combine.aspx" />
8: <View ViewId="403a91bb-2f07-4eef-bcaa-f14778148edd" CachedName="Relink Documents" Index="-2" CachedUrl="Shared Documents/Forms/repair.aspx" />
9: <View ViewId="79b33591-e594-4d4d-afd0-fd700a08f480" CachedName="assetLibTemp" Index="-3" CachedUrl="Shared Documents/Forms/Thumbnails.aspx" />
10: <View ViewId="d38fef41-7cf5-4a73-adc9-7edb956addfc" CachedName="" Index="-4" CachedUrl="SitePages/Home.aspx" />
11: </ViewSettings><ViewSettings UniqueNodeId="0x01010090C01EC2217EB24E9C25C0B20DA04FE0"><View ViewId="82185a44-dd31-4a12-91bf-da6798ff2c26" CachedName="Test1" Index="0" CachedUrl="Shared Documents/Forms/Test1.aspx" /><View ViewId="2017c43f-7b0d-4580-9d9d-d3c699b51b6a" CachedName="All Documents" Index="1" CachedUrl="Shared Documents/Forms/AllItems.aspx" /><View ViewId="b0e7c6b8-7a05-4943-8323-bc7d1ab90c4a" CachedName="Test2" Index="2" CachedUrl="Shared Documents/Forms/Test2.aspx" /><View ViewId="c1bd6b7b-ba53-4b0f-984d-3c24886dd4f5" CachedName="Merge Documents" Index="-1" CachedUrl="Shared Documents/Forms/Combine.aspx" /><View ViewId="403a91bb-2f07-4eef-bcaa-f14778148edd" CachedName="Relink Documents" Index="-2" CachedUrl="Shared Documents/Forms/repair.aspx" /><View ViewId="79b33591-e594-4d4d-afd0-fd700a08f480" CachedName="assetLibTemp" Index="-3" CachedUrl="Shared Documents/Forms/Thumbnails.aspx" /><View ViewId="d38fef41-7cf5-4a73-adc9-7edb956addfc" CachedName="" Index="-4" CachedUrl="SitePages/Home.aspx" /></ViewSettings></MetadataField></NavigationHierarchies><KeyFilters /><ManagedIndices><ManagedIndex IndexID="03e45e84-1992-4d42-9116-26f756012634" IndexFieldName="ContentTypeId" IndexFieldID="03e45e84-1992-4d42-9116-26f756012634" /></ManagedIndices><ViewSettings UniqueNodeId=""><View ViewId="2017c43f-7b0d-4580-9d9d-d3c699b51b6a" CachedName="All Documents" Index="0" CachedUrl="Shared Documents/Forms/AllItems.aspx" /><View ViewId="82185a44-dd31-4a12-91bf-da6798ff2c26" CachedName="Test1" Index="4" CachedUrl="Shared Documents/Forms/Test1.aspx" /><View ViewId="b0e7c6b8-7a05-4943-8323-bc7d1ab90c4a" CachedName="Test2" Index="5" CachedUrl="Shared Documents/Forms/Test2.aspx" /></ViewSettings></MetadataNavigationSettings>
1: using System;
2: using System.Collections.Generic;
3: using System.ComponentModel;
4: using System.Data;
5: using System.Drawing;
6: using System.Linq;
7: using System.Text;
8: using System.Windows.Forms;
9: using Microsoft.SharePoint;
10: using Microsoft.Office.Server;
11: using Microsoft.Office.DocumentManagement.MetadataNavigation;
12: using System.Xml;
13:
14: namespace MetaDataViewAssosiaction
15: {
16: public partial class Form1 : Form
17: {
18:
19: private const string DefaultListSettingsXmlString = @"<MetadataNavigationSettings SchemaVersion=""1"" IsEnabled=""true"" AutoIndex=""True""><NavigationHierarchies><FolderHierarchy /></NavigationHierarchies><KeyFilters></KeyFilters></MetadataNavigationSettings>";
20:
21:
22: public Form1()
23: {
24: InitializeComponent();
25: }
26: SPSite site;
27: private void btnFillData_Click(object sender, EventArgs e)
28: {
29: string siteURL = textBox1.Text.ToString().Trim();
30: site = new SPSite(siteURL);
31: FillWebs(site);
32:
33: }
34:
35: private void FillWebs(SPSite site)
36: {
37: foreach (SPWeb web in site.AllWebs)
38: {
39: lstWeb.Items.Add(web.Name);
40: }
41: }
42:
43: private void FillList()
44: {
45: using (SPWeb web = site.OpenWeb(this.lstWeb.SelectedItem.ToString()))
46: {
47: foreach(SPList List in web.Lists)
48: {
49: lstList.Items.Add(List.Title);
50: }
51:
52: }
53:
54: }
55:
56: DataTable table = null;
57: private void FillContentTypes()
58: {
59: table = new DataTable();
60: DataColumn IDColumn = new DataColumn("ID");
61: IDColumn.DataType = typeof(string);
62: table.Columns.Add(IDColumn);
63:
64: DataColumn NameColumn = new DataColumn("ContentTypeName");
65: NameColumn.DataType = typeof(string);
66: table.Columns.Add(NameColumn);
67: using (SPWeb web = site.OpenWeb(this.lstWeb.SelectedItem.ToString()))
68: {
69:
70: SPList list = web.Lists[this.lstList.SelectedItem.ToString()];
71: foreach (SPContentType ContentType in list.ContentTypes )
72: {
73: DataRow row = table.NewRow();
74: row["ID"] = ContentType.Id;
75: row["ContentTypeName"] = ContentType.Name;
76: table.Rows.Add(row);
77:
78: }
79:
80: }
81:
82: lstContentTypes.DataSource = table;
83: lstContentTypes.DisplayMember = table.Columns["ContentTypeName"].ColumnName;
84: lstContentTypes.ValueMember = table.Columns["ID"].ColumnName;
85:
86: }
87:
88: DataTable ViewTable = null;
89: private void FillViews()
90: {
91: ViewTable = new DataTable();
92: DataColumn IDColumn = new DataColumn("ID");
93: IDColumn.DataType = typeof(string);
94: ViewTable.Columns.Add(IDColumn);
95:
96: DataColumn NameColumn = new DataColumn("ViewName");
97: NameColumn.DataType = typeof(string);
98: ViewTable.Columns.Add(NameColumn);
99: using (SPWeb web = site.OpenWeb(this.lstWeb.SelectedItem.ToString()))
100: {
101: SPList list = web.Lists[this.lstList.SelectedItem.ToString()];
102: foreach (SPView View in list.Views)
103: {
104: DataRow row = ViewTable.NewRow();
105: row["ID"] = View.ID;
106: row["ViewName"] = View.Title;
107: ViewTable.Rows.Add(row);
108: }
109:
110: }
111:
112: lstViews.DataSource = ViewTable;
113: lstViews.DisplayMember = ViewTable.Columns["ViewName"].ColumnName;
114: lstViews.ValueMember = ViewTable.Columns["ID"].ColumnName;
115: }
116:
117: private void lstWeb_SelectedIndexChanged(object sender, EventArgs e)
118: {
119: FillList();
120: }
121:
122: private void lstList_SelectedIndexChanged(object sender, EventArgs e)
123: {
124: FillContentTypes();
125: FillViews();
126: MessageBox.Show("Done");
127:
128: }
129:
130: private void button1_Click(object sender, EventArgs e)
131: {
132: string XML = GenerateXML();
133: MessageBox.Show(XML);
134: }
135:
136: string XmlElementNameRootElement = "MetadataNavigationSettings";
137: string XmlAttributeNameSchemaVersion = "SchemaVersion";
138: string XmlAttributeNameIsEnabled = "IsEnabled";
139: string XmlAttributeNameAutomaticIndexManagement = "AutoIndex";
140: string XmlElementNameNavigationHierarchies = "NavigationHierarchies";
141: string XmlElementNameKeyFilters = "KeyFilters";
142: string XmlElementNameFolderHierarchy = "FolderHierarchy";
143: private string GenerateXML()
144: {
145: StringBuilder sb = new StringBuilder();
146:
147: XmlWriterSettings writerSettings = new XmlWriterSettings();
148: writerSettings.OmitXmlDeclaration = true;
149: writerSettings.Indent = false;
150: writerSettings.NewLineHandling = NewLineHandling.None;
151:
152: XmlWriter writer = XmlWriter.Create(sb, writerSettings);
153:
154: writer.WriteStartElement(XmlElementNameRootElement);
155: writer.WriteAttributeString(XmlAttributeNameSchemaVersion, "1");
156: writer.WriteAttributeString(XmlAttributeNameIsEnabled, "True");
157: writer.WriteAttributeString(XmlAttributeNameAutomaticIndexManagement, "True");
158: // Should we add the cached list Url and ID
159:
160: //// Serialize Navigation hierarchies collection
161: writer.WriteStartElement(XmlElementNameNavigationHierarchies);
162: writer.WriteStartElement(XmlElementNameFolderHierarchy);
163: WriteStorageXml(writer);
164: writer.WriteEndElement();
165: writer.WriteEndElement(); // XmlElementNameNavHierarchies
166:
167: writer.WriteStartElement(XmlElementNameKeyFilters);
168: //MetadataNavigationSettings.WriteStorageXml<MetadataNavigationKeyFilter>(this.ConfiguredKeyFilters, writer);
169: writer.WriteEndElement(); // XmlElementNameKeyFilters
170:
171:
172: writer.WriteEndElement(); // XmlElementNameRootElement
173:
174: writer.Flush();
175: writer.Close();
176:
177: return sb.ToString();
178:
179: }
180:
181: string xmlElementNameViewSettings = "ViewSettings";
182: string XmlAttributeNameUniqueNodeId = "UniqueNodeId";
183: private void WriteStorageXml(XmlWriter writer)
184: {
185:
186: writer.WriteStartElement(xmlElementNameViewSettings);
187: writer.WriteAttributeString(XmlAttributeNameUniqueNodeId, "");
188: writer.WriteEndElement();
189: }
190:
191: private void btnMap_Click(object sender, EventArgs e)
192: {
193: DataRowView row = (DataRowView)this.lstContentTypes.SelectedItem;
194: DataRowView viewRow = (DataRowView)this.lstViews.SelectedItem;
195: string strMapping = row.Row["ContentTypeName"].ToString() + ";" +
196: this.lstContentTypes.SelectedValue.ToString() + ";" +
197: viewRow.Row["ViewName"].ToString() + ";" +
198: this.lstViews.SelectedValue.ToString();
199:
200: this.lstMapping.Items.Add(strMapping);
201: }
202: }
203: }
Comments
- Anonymous
July 23, 2010
Thanks for this very useful post:) <a href="http://www.rnbacademy.com">Easy Online Guitar Lesson</a>