我有PublishingLayoutPage,并依赖于查询参数,我应该隐藏一些few部件。
但我现在不知道该怎么做。因为如果我正确理解这个问题,SPLimitedWebPartManager会对所有用户隐藏webpart!
using (SPLimitedWebPartManager mgr = file.GetLimitedWebPartManager(PersonalizationScope.Shared))
{
try
{
SPLimitedWebPartCollection webparts = mgr.WebParts;
foreach (System.Web.UI.WebControls.WebParts.WebPart wp in webparts)
{
if (wp is MyWebpart && !isShowWebpart)
{
wp.Hidden=true;
mgr.SaveChanges(wp );
}
}如何隐藏网页部件,不允许在页面上只渲染特定情况的内容?
发布于 2012-09-26 22:39:19
听起来你可以把它放在你的Load/PreRender/任何合适的地方:
List<string> webPartTitlesToHide = new List<string>();
webPartTitlesToHide.Add("Long Title");
webPartTitlesToHide.Add("Long Content");
webPartTitlesToHide.Add("Long Footer");
if (Request["view"] == "short")
{
WebPartManager wpm = WebPartManager.GetCurrentWebPartManager(this);
foreach (WebPart wp in wpm.WebParts)
{
if (webPartTitlesToHide.Contains(wp.Title))
{
wpm.CloseWebPart(wp);
}
}
}显然,您可能有更好的方法来选择要隐藏的way部件,但这只是一个示例。
https://stackoverflow.com/questions/12600552
复制相似问题