Search 如何在liferay搜索容器中隐藏显示结果文本?
我正在使用liferay搜索容器显示信息列表,但在该liferay搜索容器中,默认情况下会显示记录数,如“显示2个结果”。但就我而言,我不想展示这个。我怎样才能删除这个?还附上了搜索容器的图像Search 如何在liferay搜索容器中隐藏显示结果文本?,search,liferay,liferay-6,Search,Liferay,Liferay 6,我正在使用liferay搜索容器显示信息列表,但在该liferay搜索容器中,默认情况下会显示记录数,如“显示2个结果”。但就我而言,我不想展示这个。我怎样才能删除这个?还附上了搜索容器的图像 欢迎您提出建议。这是因为您正在搜索容器中使用页面迭代器。当记录超过默认增量时,上面的消息将被替换为显示y-x-of-y-results以及页码和导航到下一页的控件 如果您不希望这样,那么您必须使用钩子修改jsp页面。jsp的名称显示了_x_results.jspf,下面的代码片段是您希望在其中修改的内容
欢迎您提出建议。这是因为您正在搜索容器中使用页面迭代器。当记录超过默认增量时,上面的消息将被替换为显示y-x-of-y-results以及页码和导航到下一页的控件 如果您不希望这样,那么您必须使用钩子修改jsp页面。jsp的名称显示了_x_results.jspf,下面的代码片段是您希望在其中修改的内容
<c:otherwise>
<c:choose>
<c:when test="<%= total != 1 %>">
<%= LanguageUtil.format(pageContext, "showing-x-results", numberFormat.format(total)) %>
</c:when>
<c:otherwise>
<%= LanguageUtil.format(pageContext, "showing-x-result", numberFormat.format(total)) %>
</c:otherwise>
</c:choose>
</c:otherwise>
为了删除某些特定页面的字符串,请在页面上放置jQuery/javascript,这将隐藏显示该文本的特定div/span 在这种情况下,它将不会显示在该页面上,但它将可用并在其他地方呈现 以下是快速步骤:
$('.taglib页面迭代器').hide()代码>
我不建议对客户端隐藏它,因为如果您决定升级Liferay安装,它很可能会崩溃。钩子是一种安全的方法。您可以按照以下建议使用Javascript执行此操作: 以下是快速步骤:
- 转到所需页面的“管理页面”部分(您要访问的页面 不想显示此文本)
- 转到javascript部分,添加以下与liferay捆绑的javascript框架:
AUI().ready( function(customA) { customA.all('.taglib-page-iterator').hide(); // this would hide **all** the elements which have the class "taglib-page-iterator" } );
- 上述javascript代码可以包含在定制portlet的JSP本身中(注意我已经更改的方法和选择器),如:
隐藏结果文本,但只有当页面的URL是要隐藏此结果文本的URL时,或者可以有条件检查要隐藏此结果文本的特定portlet时,才可以设置条件以检查隐藏 因此,它通常适用于其他页面和portlet,但会隐藏您的页面和您定义的某些portlet。这是一个想法,还没有尝试过,但我认为它会奏效。您可以使用JSP页面上可用的
对象来检索portlet-id 希望这有帮助 感谢您通过Javascript推荐解决方案主题显示
我想将我的评论转换成一个答案,以便更好地了解这个奇妙社区的其他成员。是否可以通过某些属性或参数在portlet中更改它?因为如果我在hook中做了更改,那么它将应用于我项目中的每个搜索容器,但我只想在一个搜索容器中使用它……请您提供一些关于如何使用Jquery/Javascript实现这一点的详细信息。请您提供代码片段好吗..您可以使用Alloy UI而不是liferay附带的jQuery来完成这项工作。代替jQuery代码写入:var customA=AUI();customA.one('.taglib页面迭代器').hide();我还没有检查所提到的类是否正确,但这段代码可以工作。如果不想,不需要包含jQuery。同意Prakash的观点,Liferay不正式支持jQuery,合金与铝捆绑在一起Liferary@PrakashKu r代码工作正常…但一旦我刷新页面,显示结果的页面将再次显示..我已将我的注释转换为带有附加信息的答案。感谢您的回答..工作正常,但当页面加载1-2秒时,显示x结果div,然后威尔走了。你能告诉我为什么会这样吗?这是因为先加载div,然后隐藏它吗?是的,这是因为先加载html,然后运行javascript来隐藏它。我还可以考虑另一个解决方案,将对我的答案进行一点编辑。如果我将文档库放在portlet之上,还将面临另一个问题。然后在DocumentLibrary搜索容器中,它将隐藏显示x结果,但在我的portlet中,它将显示该结果。如何解决这个问题?您想隐藏该特定页面中所有portlet的结果行,或者只隐藏该页面中您自己的portlet的结果行,或者您想将结果行隐藏在您的portlet中的任何位置?我只想将结果行隐藏在我的portlet中的任何位置。现在在我的portlet上面有一个文档库portlet。所以当我测试你的代码时,我会面对这个问题。AUI().ready( function(customA) { customA.all('.taglib-page-iterator').hide(); // this would hide **all** the elements which have the class "taglib-page-iterator" } );
<aui:script> AUI().ready( function(customA) { customA.one('#my-portletID .taglib-page-iterator').hide(); // this would hide only **one** element (the first it finds) which has the css class "taglib-page-iterator" under an element with id="my-portletID". } ); </aui:script>