【问题标题】:Removing Sharepoint QuickLaunch based on permissions根据权限删除 Sharepoint QuickLaunch
【发布时间】:2012-11-14 15:20:09
【问题描述】:

我目前是第一次处理一些 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() 但这都没有导致任何动作。

TIA!

【问题讨论】:

    标签: jquery sharepoint-2010 master-pages sharepoint-branding


    【解决方案1】:

    沉,

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

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

    【讨论】:

      【解决方案2】:

      我能够使用 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>
      

      【讨论】:

      • 您不需要将此代码放在 document.ready 函数或类似函数中吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-17
      • 2010-10-31
      • 2010-09-08
      • 2011-03-22
      • 2016-01-05
      • 1970-01-01
      相关资源
      最近更新 更多