Yes you read it correct, I did some SharePoint development last week. And I must say It was quite a challenge. I was just helping out on a project where we created a feature that combines a custom list deployment with the deployment of a custom page. On this page we place web parts that provide a view to the custom list.

Now the challenge I faced was to get the deployment working in such a way that we add web parts to the page not showing the toolbar. At first I just laugh and said that I would fix that for them in a few minutes, assuming I could just use the object model, set a toolbar property to false and from that point on have a big hug from my colleague.

Well I was wrong. Removing a toolbar from a webpart using the object model is something that is just not supported. You can read more about this in e.g. this forum thread.

After some digging around I finally got the problem solved. I thought I would provide the code snippet here, so you can leverage it.


private static void DisableToolbar(ListViewWebPart lv)


 //  Extract view


   System.Reflection.PropertyInfo ViewProp = lv.GetType().GetProperty(“View”,
BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);


   SPView spView = ViewProp.GetValue(lv, null) as SPView;


   string txt = spView.SchemaXml;

   System.Reflection.PropertyInfo NodeProp = spView.GetType().GetProperty(“Node”,
BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);


   XmlNode node = NodeProp.GetValue(spView, null) as XmlNode;

   XmlNode tBarNode = node.SelectSingleNode(“Toolbar”);


   if (tBarNode != null)


      XmlAttribute typeNode = tBarNode.Attributes[“Type”];

      // make the contents empty so we realy remove the toolbar …..

      // otherwise you might get a different type of toolbar popup when we have a
      // Migrated site from 2.0


      // re-add the type attribute


      // finally set the toolbar to not show….

       typeNode.Value = “None”;


//This forces a refresh of the views internal xml or the node’s cild nodes are not populated