To enable "Show Tool Bar" option in Document Web Part through Code


I am going to explain a scenario where I had an OOB Document Web Part in one of my page and from code i had to enable the "Show Tool Bar" for that Web Part.

The scenario can be achieved through reflection. The code is given below.

splist -> The Document Library List

webpartID -> Id of the Document Web Part added to the page 

private static void SetToolbar(SPList splist, string webpartID) 
{
SPWeb web = splist.ParentWeb;
SPLimitedWebPartManager manager = web.GetLimitedWebPartManager("default.aspx", System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
SPLimitedWebPartCollection webPartColl = manager.WebParts;
XsltListViewWebPart wp = webPartColl[webpartID] as XsltListViewWebPart;

if (wp != null)
{
MethodInfo ensureViewMethod = wp.GetType().GetMethod("EnsureView", BindingFlags.Instance | BindingFlags.NonPublic);
object[] ensureViewParams = { };
ensureViewMethod.Invoke(wp, ensureViewParams);
FieldInfo viewFieldInfo = wp.GetType().GetField("view", BindingFlags.NonPublic | BindingFlags.Instance);
SPView view = viewFieldInfo.GetValue(wp) as SPView;
Type[] toolbarMethodParamTypes = { Type.GetType("System.String") };
MethodInfo setToolbarTypeMethod = view.GetType().GetMethod("SetToolbarType", BindingFlags.Instance | BindingFlags.NonPublic, null, toolbarMethodParamTypes, null);
object[] setToolbarParam = { "ShowToolbar" };
setToolbarTypeMethod.Invoke(view, setToolbarParam);
view.Update();
}
}
Comments (2)

  1. Anon Dev says:

    Brilliant!

  2. Mahesh says:

    It works but unable to edit page. Have u experienced that issue

Skip to main content