这是我的Liferay搜索容器代码:
MVC:BigInteger leaveTotalCount;
ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
PortletURL iteratorURL = PortletURLFactoryUtil.create(request, themeDisplay.getPortletDisplay().getId(),
themeDisplay.getPlid(), PortletRequest.RENDER_PHASE);
SearchContainer<LeaveDetailsWrapper> searchContainer = null;
searchContainer = new SearchContainer<>(request, null, null, SearchContainer.DEFAULT_CUR_PARAM,
SearchContainer.DEFAULT_DELTA, iteratorURL, null, LmsLeaveDashboardConstant.BLANK_STRING);
List<LeaveDetailsWrapper> leaveDetails;
try {
searchContainer.setDeltaConfigurable(true);
leaveDetails = leaveLocalService.getLeaveDetails(null, null, null, null,
LmsLeaveDashboardUtils.getEmpCode(request), searchContainer.getStart(), searchContainer.getEnd());
log.info(leaveDetails);
leaveTotalCount = leaveLocalService.getLeaveDetailsCount(null, null, null, null,
LmsLeaveDashboardUtils.getEmpCode(request), -1, -1);
searchContainer.setEmptyResultsMessage("No Data Found..!");
searchContainer.setTotal(leaveTotalCount.intValue());
searchContainer.setIteratorURL(iteratorURL);
searchContainer.setResults(leaveDetails);
} catch (Exception e) {
log.error("ERROR:IntrahrmsLmsLeaveDashboardWebPortlet leaveSearchContianer" + e);
}
return searchContainer;
jsp:
<liferay-ui:search-container searchContainer="${leaveInfoContainer}" iteratorURL="${iteratorURL}">
<liferay-ui:search-container-results
results="${leaveInfoContainer.getResults()}" />
<liferay-ui:search-container-row
className="com.intrahrms.lms.service.leavecustom.model.LeaveDetailsWrapper"
modelVar="LeaveDetails">
<liferay-ui:search-container-column-text
value="${LeaveDetails.leaveTypeName} Leave " name="Leave Type" />
<liferay-ui:search-container-column-text name="From Date">
<fmt:formatDate pattern="dd/MM/yyyy"
value="${LeaveDetails.fromDate}" type="date" />
</liferay-ui:search-container-column-text>
<liferay-ui:search-container-column-text name="To Date">
<fmt:formatDate pattern="dd/MM/yyyy" value="${LeaveDetails.toDate}"
type="date" />
</liferay-ui:search-container-column-text>
<liferay-ui:search-container-column-text
value="${LeaveDetails.totalDays}" name="Total Leave Days" />
<liferay-ui:search-container-column-text name="Applied Date">
<fmt:formatDate pattern="dd/MM/yyyy"
value="${LeaveDetails.appliedDate}" type="date" />
</liferay-ui:search-container-column-text>
<liferay-ui:search-container-column-text
value="${LeaveDetails.leaveStatus} " name="Status" />
<liferay-ui:search-container-column-text
value="${LeaveDetails.projectManagerId}" name="Reporting Manager" />
<liferay-ui:search-container-column-jsp path="/action.jsp"
align="center" />
</liferay-ui:search-container-row>
<liferay-ui:search-iterator markupView="lexicon" />
</liferay-ui:search-container>
问题是,当我更改分页或更改增量时,它会给我整个记录,而不是筛选记录。
您的搜索容器似乎做了正确的事情:
leaveDetails = leaveLocalService.getLeaveDetails(null, null, null, null,
LmsLeaveDashboardUtils.getEmpCode(request), searchContainer.getStart(), searchContainer.getEnd());
想想看:您刚刚创建了实例,您期望开始和结束时是什么?
创建容器时,您告诉了它应该使用的参数,但这些参数并没有在JSP上设置,例如:
<liferay-ui:search-container emptyResultsMessage="there-are-no-file-entries" iteratorURL="${filesRenderUrl}" delta="${files_searchDelta}" total="${files_searchTotal}" curParam="files" deltaParam="files">
底线是,如果您想在这样的java方法中控制您的搜索容器,您需要采取相应的行动来设置您的结果:
private static int getStart( int current, int delta ) {
return ( current - 1 ) * delta;
}
private static int getEnd( int first, int delta ) {
return first + delta;
}
我在我的代码中使用了riveray-ui:搜索容器。 搜索结果正在正确显示,直到我单击下一步。portlet正在重新加载,这将把我带到portlet的第一页,丢弃呈现的搜索结果。 即使在重新加载portlet之后,我如何保留搜索结果?
我正在使用在Liferay 6.1中开发一个portlet。当我使用 Eclipse总是向我显示以下警告消息 SearchContainer是原始类型。泛型类型的引用 JSP代码片段: 我搜索了很多例子。我已经将它们导入我的工作区。当使用搜索容器标记时,它们也会显示相同的警告消息。 例如这个portlet:docroot/html/eventlisting/view中的事件列表portlet。js
大家好,根据搜索框中的conatiner图像在这里!我只是想问当用户在搜索框中键入一个名称时,应该显示特定的字段。我把我的视图。JSP代码也在这里吗?? vuew.jsp<%@page import=“com.privery.servicebuilder.service.blobdesolocalserviceutil”%><%@taglib uri=“http://java.sun.com/po
我已经使用Liferay搜索容器来显示自定义实体的数据,它正在工作。我有另一个portlet,其中数据来自RESTAPI,所以有没有任何方法可以使用搜索容器?或者我需要使用datatable。我的REST API有分页和无分页。
我到处找了又找,但还是找不到解决问题的办法。我还不熟悉php和codeigniter,所以可能我已经错过了答案,但不管怎样,下面是我要做的。 这是我的控制器(c_index.php)-调用搜索函数并对结果数组执行分页。 这是我的视图(index.php)-基本上只是显示分页结果 我的模型(m_search.php)-基本上搜索数据库并返回结果数组。 类M_搜索扩展了CI_模型{ 现在我的问题是保留
搜索页主要是对场景内模型的搜索。 在搜索框内输入关键字,可以显示出场景内所有相关模型的列表。点击列表中模型名称,即可定位到搜索出的模型,如下图所示。