2009-07-22 15 views
1

SharePoint内のリストまたはドキュメントライブラリ内の新規/アクション/アップロード/設定メニューを非表示にするにはどうすればよいですか?特定のリスト定義(テンプレート)のためにこれらのメニューを隠すことができ、すべてのリストやドキュメントライブラリだけでなく、それらを非表示にする必要があることに注意してください。SharePointリスト/ドキュメントライブラリの新規/アクション/アップロード/設定メニューを非表示にする

私が知っている1つの可能な方法は、aを登録し、WebControlから継承するコントロールにControlClass要素を設定することです。

foreach (Control control in this.Parent.Controls) 
{ 
    if (control.ToString() == "Microsoft.SharePoint.WebControls.NewMenu") 
    { 
     control.Visible = false; 
    } 

    // etc 
} 

これはかなりハックであり、それを行うためのより良い方法があるかどうか私は思っていた:?WebBrowserコントロールでは、私は、これを行うOnPreRenderをオーバーライドすることができますか

+0

私はJavaScriptがまだハッキーだと思っていますが、クライアント側からもそうすることができます。 –

答えて

0

JavaScriptがおそらく最適です。ただ、修正して、マスターページにこのコードを参照してください。

hideListViewToolbarItems("list settings","document library settings","create column","open with windows explorer"); 

function hideListViewToolbarItems() 
{  
    var menuItem;   
    var menuItemName; 
    var menuItemIndex=-1; 
    var menuItemNames=new Array("edit in datasheet","open with windows explorer", 
    "connect to outlook",'export to spreadsheet','view rss feed','alert me' 
    ,"create column","settings:create view","list settings", 
    "document library settings","explorer view","all documents", 
    "all items","modify this view","view:create view","new document", 
    "new item","new folder","upload document","upload multiple documents"); 
    var menuItems = new Array("EditInGridButton","OpenInExplorer","OfflineButton", 
    "ExportToSpreadsheet","ViewRSS","SubscribeButton","AddColumn", 
    "AddView","ListSettings","ListSettings","View1","DefaultView", 
    "DefaultView","ModifyView","CreateView","New0","New0", 
    "NewFolder","Upload","MultipleUpload");    
    var allMenuItems = document.getElementsByTagName('ie:menuitem'); 
    for(var i = 0; i < hideListViewToolbarItems.arguments.length; i++) 
    {                   
      menuItemName= hideListViewToolbarItems.arguments[i].toLowerCase(); 
      for (j=0; j < menuItemNames.length; j++) 
      { 
       if(menuItemNames[j]==menuItemName) 
       {          
        menuItemIndex = j; 
        break; 
       } 
      }   
      menuItem=menuItems[menuItemIndex]; 
      for (var l = 0; l < allMenuItems.length; l++) 
      {     
       if(menuItemName.indexOf(":")!=-1) 
       { 
         menuItemName = menuItemName.split(":")[1]; 
       } 
       if (allMenuItems[l].id.indexOf(menuItem)!=-1 
       && allMenuItems[l].text.toLowerCase() == menuItemName) 
       {     
        // For FireFox Compatibility 
        var parentNodeOfMenuItem = allMenuItems[l].parentNode; 
        parentNodeOfMenuItem.removeChild(allMenuItems[l]); 
       } 
      }     
    } 
} 
+0

これはしばらく使用してきましたが、IE9で動作しなくなったことに気がつきました。互換性モードでIE9で動作します – Dave

0

私はちょうどあなたのためのボタンが非表示になり、この上のブログエントリhereを書きました。それが役に立てば幸い。

0

リストに非表示のコンテンツタイプがない場合は、「新規」ボタンが自動的に表示されなくなります。

1

これは、SharePoint 2007機能Codeplexプロジェクトの一部であるツールバーマネージャWebパーツを使用して確認できます。 http://features.codeplex.com/

Webパーツを各ビューWebページに追加する必要がありますが、コーディングなしでメニュー項目を非表示にすることができます。

メニュー項目が必要なユーザーがいる場合は、個人ビューを追加する権限を与えます。彼らが個人的なビューを作成するとき、Webパーツはデフォルトでインストールされません。また、メニュー項目にアクセスすべきでないユーザーの個人ビューを禁止する必要があります。

関連する問題