liferay中有自带的searchContainer。本文就如何加入复选框及通过复选框获取被选择的复选框的值。来进行说明。
searchContainer代码如下:
<liferay-ui:search-container rowChecker="<%=new RowChecker(renderResponse) %>" iteratorURL="<%=itrURL %>" delta="<%=SearchContainer.DEFAULT_DELTA %>" curParam="<%=SearchContainer.DEFAULT_CUR_PARAM %>" emptyResultsMessage="theres_no_point_to_display"> <liferay-ui:search-container-results total="<%=totalSize %>" results="<%=resultList %>"/> <liferay-ui:search-container-row className="com.longshine.model.Point" modelVar="point" keyProperty="pointId"> <liferay-ui:search-container-column-text property="pointId" name="point_id" /> <liferay-ui:search-container-column-text property="label" name="point_label" /> <liferay-ui:search-container-column-text property="description" name="point_description" /> <liferay-ui:search-container-column-text property="unit" name="point_unit" /> <liferay-ui:search-container-column-text property="tableId" name="point_table_id" /> </liferay-ui:search-container-row> <liferay-ui:search-iterator /> </liferay-ui:search-container>
在 <liferay-ui:searchContainer/>标签上加入属性 rowChecker值为通过java写的 new RowChecker(renderResponse);
这样在第一行就出现了复选框。
我们如何通过JS获取复选框呢?代码如下:
<aui:script> Liferay.provide( window, '<portlet:namespace />addPoint', function() { var checkBoxValue = Liferay.Util.listCheckedExcept(document.<portlet:namespace />fm, "<portlet:namespace />allRowIds"); alert(checkBoxValue); }, ['liferay-util-list-fields'] ); </aui:script>
这样我们就能拿到所有的被勾选的项。
其中刚刚没有讲解的<liferay-ui:search-container-row/>标签上的keyProperty属性的作用即为确定复选框的值。如果没有这个选项。就会把本行对应的javabean的所有属性都拼接成字符串作为复选框的value.