2012-11-14 93 views
0

我目前正在首次使用某些SharePoint品牌。我正在使用SharePoint Foundation 2010.我試圖嘗試從不屬於「管理員」組的每個人的頁面中刪除快速啓動部分。現在,我試着寫一個功能或Web部件與下面的C#代碼來做到這一點:根據權限刪除Sharepoint QuickLaunch

SPWeb web = SPContext.GetContext(this.Context).Web.ParentWeb; 
web.AllowUnsafeUpdates = true; 
web.QuickLaunchEnabled = false; 
web.Update(); 

這並沒有消除實際面板本身並在移動的主要內容左邊。我決定從Jquery路線嘗試。我的代碼複製到下面。但是,當我在主頁面中嘗試此操作時,頁面完全加載,然後面板被刪除。我希望在頁面實際加載之前發生這種情況,以便用戶不會看到頁面彈出窗口然後再進行更改。我不是100%確定JQuery是要走的路,請幫助我,因爲我正在爲此付出努力。

$(document).ready(function(){ 
    $().SPServices({ 
    operation: "GetGroupCollectionFromUser", 
    userLoginName: $().SPServices.SPGetCurrentUser(), 
    async: false, 
    completefunc: function(xData, Status) { 
     if($(xData.responseXML).find("Group[Name='Administrator']").length == 1) 
     {} 
     else{ 

     var quicklaunchpanel = document.getElementById('s4-leftpanel'); 
    quicklaunchpanel.style.display="none"; 
    var maincontent = document.getElementById('MSO_ContentTable'); 
    maincontent.style.cssText = "margin-left:0px;"; 

     } 
     } 

});注意:我也嘗試了$(document).load()和$('#s4-leftpanel')。load()但是這兩者都沒有引起任何動作。

TIA!

回答

0

我能夠用戶SPSecurityTrimmedControl來實現:

我最初設置的顯示屬性設置爲S4-leftpanel爲「無」和然後有這個代碼塊該面板後:

<Sharepoint:SPSecurityTrimmedControl runat="server" Permissions="FullMask"> 
     <script type="text/javascript"> 
      document.getElementById("s4-leftpanel").style.display = "block"; 
     </script> 
     </Sharepoint:SPSecurityTrimmedControl> 

我也performaned同爲MSO_ContentTable.I的利潤率將其設置爲0像素,然後該div後運行此代碼:

 <Sharepoint:SPSecurityTrimmedControl runat="server" Permissions="FullMask"> 
     <script type="text/javascript"> 
      document.getElementById("MSO_ContentTable").style.marginLeft = "155px"; 
     </script> 
     </Sharepoint:SPSecurityTrimmedControl> 
+0

你不需要把這段代碼放在document.ready函數中嗎? –