在SharePoint 2013未返回任何结果时隐藏/删除内容搜索Web部件

在SharePoint 2013未返回任何结果时隐藏/删除内容搜索Web部件,sharepoint,sharepoint-2013,web-parts,sharepoint-search,Sharepoint,Sharepoint 2013,Web Parts,Sharepoint Search,我正在寻找一种方法来隐藏整个内容搜索网页部件(包括网页部件标题和边框区域),如果没有从查询返回结果 我试过的 有这样一个属性:“shoulldhidecontrolwhenempty”,但在没有结果时它不会做任何事情。该Web部件仍然可见。Web部件有一个标题和边框,因此当没有结果时,标题和边框将显示为没有结果。就像我说的那样,我想把整件事都藏起来 编写了一个jQuery脚本,用于搜索文本“没有结果”消息(没有结果时来自Web部件)并隐藏Web部件。但是,页面加载后会出现短暂的闪烁,因为Web部

我正在寻找一种方法来隐藏整个内容搜索网页部件(包括网页部件标题和边框区域),如果没有从查询返回结果

我试过的

  • 有这样一个属性:“shoulldhidecontrolwhenempty”,但在没有结果时它不会做任何事情。该Web部件仍然可见。Web部件有一个标题和边框,因此当没有结果时,标题和边框将显示为没有结果。就像我说的那样,我想把整件事都藏起来

  • 编写了一个jQuery脚本,用于搜索文本“没有结果”消息(没有结果时来自Web部件)并隐藏Web部件。但是,页面加载后会出现短暂的闪烁,因为Web部件首先在瞬间呈现,然后凭借我的jQuery脚本消失,这不是很好的UI体验

  • 所以我想我可以扩展OOTB ContentBySearchWebPart并获得某种属性,从而获得结果计数。如果结果计数为0,我将隐藏webpart服务器端。我在网上查看了文档,没有发现任何我可以利用的东西。 帮助谢谢


  • 使用jquery的选项2很好,但只需翻转您现在正在使用的方法即可。如果Web部件为空,则不隐藏该Web部件,而是在默认情况下隐藏该Web部件,并且仅当内容可用时才可见。这里是方法

  • 添加一个内容编辑器/脚本编辑器Web部件,其CSS代码在默认情况下隐藏内容搜索Web部件(请记住,只需将display none/visible false标记为“无/可见”,不要删除)。将样式代码放置在内容搜索Web部件上方,以确保页面加载时内容搜索Web部件不可见
  • 在页面加载检查期间,如果内容搜索Web部件包含结果,如果Web部件包含结果,则使Web部件可见。在这里,您将搜索文本“没有结果”消息,如果它显示您什么也不做,否则您将使Web部件可见,因为这意味着有可用的搜索结果
  • 这样,您将消除当前方法中的轻弹问题