我试图完全隐藏我在特定情况下编写的自定义Web部件。我没有找到很多帮助,实际上是隐藏了完整的Web部分。使用:
this.Hide = true;
会隐藏网络部分的内容,但它似乎会让Chrome落后。我无法更改Chrome显示屏,所以现在不能选择。是否有更完整的方法可以使用C#隐藏整个Web部件?
答案 0 :(得分:4)
我并不担心正在渲染的网页部分,只是让它无法直观显示。我最终做的是在我的具体情况出现时通过代码更改chrome。
this.ChromeType = PartChromeType.None;
this.Hidden = true;
答案 1 :(得分:3)
确保向页面呈现任何内容的唯一方法是关闭Web部件。 From MSDN:
隐藏的WebPart控件 实际上是在它的区域内 在其页面上呈现,并参与其中 在页面生命周期阶段,如 PreRender阶段,即使它不是 在浏览器中可见。这是 与WebPart控件不同 关闭,因为关闭控制 甚至没有在页面上呈现......
使用SPLimitedWebPartManager及其CloseWebPart方法执行此操作。 (注意正确处理SPLimitedWebPartManager及其Web属性。)
或者,使用CSS或jQuery方法。 Web部件仍将呈现,但您可以按原来的需要隐藏它。