searchContainer的checkbox实现及JS获取勾选值

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.