0

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

我试过的

  1. 有这个属性:“ShouldHideControlWhenEmpty”但是当没有结果时它什么都不做。Web 部件仍然可见。Webpart 周围有一个标题和边框,因此当没有结果时,标题和边框显示没有结果。就像我说的那样,我想在那种情况下隐藏整个事情。

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

  3. 所以我想我可以扩展 OOTB ContentBySearchWebPart 并获得某种属性,让我得到结果计数。如果结果计数为 0,我将隐藏 webpart 服务器端。我查看了在线文档 - 我找不到任何可以利用的东西。帮助?谢谢!

4

1 回答 1

0

使用 jquery 的选项 2 很好,但只需翻转您现在正在执行的方法。如果 web 部件为空,则不要隐藏 web 部件,而是默认隐藏 web 部件,并且仅在内容可用时可见。这是方法。

  1. 添加一个带有 CSS 代码的内容编辑器/脚本编辑器 web 部件,默认情况下隐藏(记住只标记显示无/可见 false,不要删除)内容搜索 Web 部件。将样式代码放在内容搜索 Web 部件上方,以确保页面加载时内容搜索 Web 部件不可见。
  2. 在页面加载期间检查 Content search webpart 是否包含 result ,如果 webpart 包含 result ,则使 webpart 可见。在这里,您将搜索文本“没有结果”消息,如果它存在则您什么都不做,否则您使 web 部件可见,因为这意味着有可用的搜索结果。

这样,您将消除当前方法的闪烁问题。

于 2014-10-29T21:41:45.587 回答