在c#里面,我们有可拖动的控件datagrid可用,但是,在liferay中没有这种控件。但是,为了在界面上显示类似的功能时,我们需要searchContainer来实现。
下面介绍一下,我所采用的两种方法来实现。
第一种:
results&#61;"<%&#61; FirstlevelLocalServiceUtil.getFirstlevelsByGroupId(scopeGroupId, searchContainer.getStart(), searchContainer.getEnd()) %>" total&#61;"<%&#61; FirstlevelLocalServiceUtil.getFirstlevelsCountByGroupId(scopeGroupId) %>" >
在上述代码中&#xff0c;delta属性是为了控制所显示的行数&#xff0c;此处默认显示5行&#xff0c;如果超过则显示分页&#xff08;该功能为search-container自动提供&#xff09;。(prefs.getValue("rowsPerPage", "5")&#xff0c; 其中prefs需要事先定义如下&#xff1a;
<%
PortletPreferences prefs &#61; renderRequest.getPreferences();
%>
另外两个属性results和total是从数据库中所取出的结果集及总数。
最重要的是
第二种方法&#xff1a;
<%
PortletURL portletURL &#61; renderResponse.createRenderURL();
List
headerNames.add("name"); //增加列名
headerNames.add("Operate"); //增加列名
// create search container, used to display table
SearchContainer searchContainer &#61; new SearchContainer(renderRequest,null, null,SearchContainer.DEFAULT_CUR_PARAMSearchContainer.DEFAULT_DELTA,
portletURL,headerNames, "There No Result To Display");
searchContainer.setTotal(petsCount);
List
List
for (int i &#61; 0; i Firstlevel getGirstlevel &#61; (Firstlevel)results.get(i); ResultRow row &#61; new ResultRow(getGirstlevel, getGirstlevel.getFirstlevelId(), i); row.addText(getGirstlevel.getName(), ""); //将数据加入 row.addJSP("/html/config/firstlevel_actions.jsp", application, request, response); //将要跳转的页面加入 resultRows.add(row); //将显示的行加入 } %> 这段代码的功能&#xff0c;将所有的数据信息从数据库中取出并进行的存储。剩下所要进行的操作就是将其显示出来。 那么使用下面代码 这个时候对应的数据将进行显示 上面显示的图片&#xff0c;是将对应的分页功能去掉了。正常&#xff0c;会显示总共有多少条记录&#xff0c;以及前一页&#xff0c;后一页&#xff0c;第一页等功能。 为了将显示的结果数和分页功能去掉的话&#xff0c;在searchContainer中增加paginate&#61;"<%&#61;false%>"即可&#xff0c;如下&#xff1a;