1#region Find the discussions web part and hide the toolbar from the web part view ...
2
3 Boolean discWpExists = false;
4 ListViewWebPart discwp = null;
5 string pagesListName = SPUtility.GetLocalizedString("$Resources:cmscore,List_Pages_UrlName;", "cmscore", newProjectSite.Language);
6 string discListName = SPUtility.GetLocalizedString("$Resources:varma,varma_sites_project_site_discussions;", "varma", newProjectSite.Language);
7 SPListItem defaultPageItem = newProjectSite.Lists[pagesListName].Items[0];
8 SPLimitedWebPartManager wpManager = newProjectSite.GetLimitedWebPartManager(defaultPageItem.Url, PersonalizationScope.Shared);
9 foreach (System.Web.UI.WebControls.WebParts.WebPart ewp in wpManager.WebParts)
10 {
11 ListViewWebPart lwp = ewp as ListViewWebPart;
12 if (lwp != null)
13 {
14 //Check if the discussions web part exists
15 if (String.Equals(lwp.DisplayTitle, discListName))
16 {
17 discwp = lwp;
18 discWpExists = true;
19 break;
20 }
21
22 }
23 }
24
25 if (discWpExists)
26 {
27 Boolean previousState = newProjectSite.AllowUnsafeUpdates;
28 newProjectSite.AllowUnsafeUpdates = true;
29 removeViewToolbar(discwp);
30 newProjectSite.AllowUnsafeUpdates = previousState;
31 }
32#endregion
33protected void removeViewToolbar(ListViewWebPart wp)
34 {
35 // Extract view
36 System.Reflection.PropertyInfo ViewProp = wp.GetType().GetProperty("View", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
37 SPView spView = ViewProp.GetValue(wp, null) as SPView;
38
39 // This forces a refresh of the views internal xml or the node's cild nodes are not populated
40 string txt = spView.SchemaXml;
41 System.Reflection.PropertyInfo NodeProp = spView.GetType().GetProperty("Node", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
42 XmlNode node = NodeProp.GetValue(spView, null) as XmlNode;
43 XmlNode tBarNode = node.SelectSingleNode("Toolbar");
44
45 if (tBarNode != null)
46 {
47 tBarNode.Attributes["Type"].Value = "None";
48 spView.Update();
49 }
50 }