How to: Hide a Menu Item in the ECB from SharePoint List Items

Applies to: SharePoint Foundation 2010

You can add new custom actions to the Edit Control Block (ECB) menu by using the Features framework. However, you cannot use this method to do the reverse – to hide existing ECB menu items– because they are rendered by using the ECMAScript (JavaScript, JScript) file, which is core.js. Note that modifying the core.js file is not supported or recommended.

Therefore, to hide ECB menu items, you must create a customcore.js file, modify this file to hide menu items, and then render the customcore.js file through a custom master page. Note that the out-of-the-box core.js file must remain in the custom master page; for that reason, your customcore.js file should have an attribute "Defer" with the value true.

The following steps allow you to create a customcore.js file and render it through the custom master page.

Hiding ECB menu items

  1. Copy the core.js file from its default location at %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\1033, place it in the same folder, and rename as customcore.js file.

  2. Make the necessary changes in the customcore.js file by removing unwanted ECB menu items.

  3. To create the custom master page, make a copy of the default.master page and rename it as custom.master.

  4. In the custom master page, add the following line to render the customcore.js file:

    <SharePoint:ScriptLink language="javascript" name="core.js" Defer="true" runat="server"/><SharePoint:ScriptLink language="javascript" name="customcore.js" Defer="true" runat="server"/>

  5. Save the custom.master page and upload it to the master pages gallery of the site. Then apply the custom.master page as the default master page for the site.