当SharePoint 2013没有返回任何结果时隐藏/删除内容搜索Webpart

时间:2014-10-29 20:16:54

标签: sharepoint sharepoint-2013 web-parts sharepoint-search

如果查询中没有结果,我正在寻找隐藏整个内容搜索网站部分(包括网站部分标题和边框区域)的方法。

我尝试了什么

  1. 有这个属性:" ShouldHideControlWhenEmpty"但是当没有结果时,它什么也做不了。 webpart仍然可见。 Webpart有一个标题和边框,所以当没有结果时,标题和边框显示没有结果。就像我说的那样,我希望在这种情况下隐藏整个事情。

  2. 写了一个搜索文本的jQuery脚本"没有结果"消息(当没有结果时来自webpart)并隐藏webpart。但是,一旦页面加载,就会出现短暂的闪烁,因为webpart首先被渲染一瞬间,然后凭借我的jQuery脚本消失 - 这不是很好的UI体验。

  3. 所以我认为我可以扩展OOTB ContentBySearchWebPart并获得一些可以让我获得结果计数的属性。如果结果计数为0,我只会隐藏webpart服务器端。我在网上查看了这些文档 - 我找不到任何可以利用的文档。 救命?谢谢!

1 个答案:

答案 0 :(得分:0)

使用jquery的选项2会很好,但只需翻转你正在做的方法。如果webpart为空,则不要隐藏webpart,而是默认隐藏webpart,并且仅在内容可用时才可见。这是方法。

  1. 使用CSS代码添加内容编辑器/脚本编辑器webpart,默认情况下隐藏(请记住只显示无/可见错误,不删除)内容搜索Web部件。将样式代码放在内容搜索webpart上方,以确保页面何时加载内容搜索Webpart不可见。
  2. 在页面加载期间检查内容搜索webpart是否包含结果,如果webpart包含结果,则使webpart可见。在这里,您将搜索文本"没有结果"消息,如果它现在什么也不做,否则你可以看到webpart,因为它意味着有可用的搜索结果。
  3. 这样你就可以用当前的方法消除轻弹问题。