0

我目前正在第一次处理一些 SharePoint 品牌。我正在使用 SharePoint Foundation 2010。我试图为不在“管理员”组内的每个人从页面中删除快速启动部分。现在,我尝试使用以下 c# 代码编写功能或 Web 部件来执行此操作:

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() 但这都没有导致任何动作。

蒂亚!

4

2 回答 2

0

沉,

您是否考虑过构建自定义导航控件?这听起来可能很激进,但可能正是您想要的。

看看http://blogs.msdn.com/b/modonovan/archive/2008/05/30/custom-navigation-in-sharepoint-the-full-monty.aspx,尤其是选项 5 和 6。

于 2012-11-14T21:13:30.207 回答
0

我能够使用 SPSecurityTrimmedControl 来完成此操作:

我最初将 s4-leftpanel 的 display 属性设置为“none”,然后在这个面板之后有这段代码:

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

我还对 MSO_ContentTable 的边距执行了相同的操作。我将其设置为 0px,然后在该 div 之后运行此代码:

        <Sharepoint:SPSecurityTrimmedControl runat="server" Permissions="FullMask">
        <script type="text/javascript">
            document.getElementById("MSO_ContentTable").style.marginLeft = "155px";
        </script>
        </Sharepoint:SPSecurityTrimmedControl>
于 2012-11-14T21:59:32.907 回答