我目前第一次做一些SharePoint的品牌推广工作。我正在使用SharePoint Foundation2010。我试图从不属于“管理员”组的每个人的页面中删除快速启动部分。现在,我尝试使用以下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(),但它们都没有引起任何行为。
蒂娅!
发布于 2012-11-15 05:59:33
我能够使用SPSecurityTrimmedControl来实现这一点:
我最初将display属性设置为s4-leftpanel设置为"none“,然后在此面板之后显示以下代码块:
<Sharepoint:SPSecurityTrimmedControl runat="server" Permissions="FullMask">
<script type="text/javascript">
document.getElementById("s4-leftpanel").style.display = "block";
</script>
</Sharepoint:SPSecurityTrimmedControl>我还对MSO_ContentTable.I的空白处执行了相同的操作,将其设置为0px,然后在该div之后运行以下代码:
<Sharepoint:SPSecurityTrimmedControl runat="server" Permissions="FullMask">
<script type="text/javascript">
document.getElementById("MSO_ContentTable").style.marginLeft = "155px";
</script>
</Sharepoint:SPSecurityTrimmedControl>发布于 2012-11-15 05:13:30
沈恩,
您是否考虑过构建自定义导航控件?这听起来可能很激进,但可能就是你想要的。
看看http://blogs.msdn.com/b/modonovan/archive/2008/05/30/custom-navigation-in-sharepoint-the-full-monty.aspx,特别是选项5和6。
https://stackoverflow.com/questions/13381663
复制相似问题