我需要为liferay的新版本创建简单的数据表示portlet,但无法找到正确的方法。
我使用服务构建器创建了后端,并添加了用于列表,添加等的自定义方法。基于本教程[https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/updating-the-view]创建了mvc portlet并且它可以工作,但是存在一些问题: - 它基于弃用的alloyUI,我不想把它转移到soy / metal.js(没有任何经验), - 结果表应该具有排序/过滤功能,服务器端可能因为它必须与WCAG兼容所以我不能保持html和js尽可能干净。
如果我理解得当,我需要将以下部分替换为适用于metal.js和大豆的部分吗?
<liferay-ui:search-container total="<%=EntryLocalServiceUtil.getEntriesCount()%>">
<liferay-ui:search-container-results
results="<%=EntryLocalServiceUtil.getEntries(scopeGroupId.longValue(),
guestbookId, searchContainer.getStart(),
searchContainer.getEnd())%>" />
<liferay-ui:search-container-row
className="com.liferay.docs.guestbook.model.Entry" modelVar="entry">
<liferay-ui:search-container-column-text property="message" />
<liferay-ui:search-container-column-text property="name" />
</liferay-ui:search-container-row>
<liferay-ui:search-iterator />
</liferay-ui:search-container>
如何在liferay-7.0中实现排序/过滤?我是否必须使用管理栏,或者是否可以允许用户按列排序(单击列标题)。
答案 0 :(得分:2)
我不会改变代码。您没有使用AlloyUI而是使用Liferay UI标签,这些标签目前恰好使用AlloyUI但最终会切换到Metal。
如果您希望继续使用服务器端渲染,我不会浪费精力重新开发搜索容器。它现在应该可以正常工作,并且将来也可以。
搜索容器应支持排序。您只需要在列中指出它,但过滤更棘手。 Liferay会进行更多搜索,然后进行过滤。