Liferay6.2开发之使用Search-Container
来源:互联网 发布:linux c select 编辑:程序博客网 时间:2024/05/22 14:24
一..SearchContainer的基本使用我就不讲了,这里主要讲讲RowChecker的使用,我们先看下效果
使用RowChecker的步骤
1.在<liferay-ui:search-container这个标签中添加属性 rowChecker="<%= new RowChecker(renderResponse) %>"
2.在<liferay-ui:search-container标签外添加<aui:form name="fm">包裹它.作用:为了后面取值
3.添加一个按钮用来获取多选框中已勾选的值,需要执行一段js,如下:
<aui:button cssClass="btn btn-danger" onClick='<%= renderResponse.getNamespace() + "delete();" %>' value="Delete" />
<aui:script>
Liferay.provide(
window,
'<portlet:namespace />delete',
function() {
var checkBoxValue = Liferay.Util.listCheckedExcept(document.<portlet:namespace />fm, "<portlet:namespace />allRowIds");
alert(checkBoxValue);
},
['liferay-util-list-fields']
);
</aui:script>
注意点:因为每一行的id是根据primarykey生成的,所以keyProperty="xxx"这个属性必须有,这个是service.xml中的实体id
<liferay-ui:search-container-row
className="com.skythinking.portlet.member.model.Member"
keyProperty="memberId" modelVar="member">
完整的view.jsp如下:
<%@page import="com.liferay.portal.kernel.dao.search.RowChecker"%><%@pageimport="com.skythinking.portlet.member.service.MemberLocalServiceUtil"%><%@pageimport="com.skythinking.portlet.member.service.MemberLocalService"%><%@page import="com.liferay.portal.kernel.util.ListUtil"%><%@pageimport="com.skythinking.portlet.member.service.persistence.MemberPersistenceImpl"%><%@pageimport="com.skythinking.portlet.member.service.persistence.MemberPersistence"%><%@page import="com.skythinking.portlet.member.model.Member"%><%@ include file="/html/common/init.jsp"%><%@ page contentType="text/html; charset=UTF-8"%><aui:form name="fm"><liferay-ui:search-container emptyResultsMessage="没有任何数据,请添加!" delta="5" rowChecker="<%= new RowChecker(renderResponse) %>" ><liferay-ui:search-container-results><%List<Member> tempResults = MemberLocalServiceUtil.getMembers(renderRequest);results = ListUtil.subList(tempResults,searchContainer.getStart(),searchContainer.getEnd());total = tempResults.size();pageContext.setAttribute("results", results);pageContext.setAttribute("total", total);%></liferay-ui:search-container-results><!-- modelVar="member" 添加了这个属性,才可以在el表达式中获取member的各种属性 --><liferay-ui:search-container-rowclassName="com.skythinking.portlet.member.model.Member"keyProperty="memberId" modelVar="member"><liferay-ui:search-container-column-text name="Id"property="memberId" /><liferay-ui:search-container-column-text name="会员名"property="memberName" /><liferay-ui:search-container-column-text name="联系电话"property="memberPhone" /><liferay-ui:search-container-column-text name="创建时间"property="createDateFormat" /><liferay-ui:search-container-column-text name="actions"><portlet:actionURL var="deleteUrl" name="delete"><portlet:param name="memberId" value="${member.memberId}" /></portlet:actionURL><liferay-ui:icon-delete image="delete" url="${deleteUrl}" /></liferay-ui:search-container-column-text></liferay-ui:search-container-row><!-- 迭代标签 --><liferay-ui:search-iterator /></liferay-ui:search-container></aui:form><portlet:renderURL var="addUrl"><portlet:param name="mvcPath" value="/html/member/edit.jsp" /></portlet:renderURL><aui:button cssClass="btn btn-primary" value="添加" href="${addUrl}" /><aui:button cssClass="btn btn-danger" onClick='<%= renderResponse.getNamespace() + "delete();" %>' value="Delete" /><aui:script>Liferay.provide(window,'<portlet:namespace />delete',function() {var checkBoxValue = Liferay.Util.listCheckedExcept(document.<portlet:namespace />fm, "<portlet:namespace />allRowIds");alert(checkBoxValue);},['liferay-util-list-fields']);</aui:script>
如何进行表单的提交呢?请看下面的代码
<aui:button cssClass="btn btn-warning" value="编辑" onClick='<%= renderResponse.getNamespace() + "edit();" %>'/><aui:button cssClass="btn btn-danger" value="删除" onClick='<%= renderResponse.getNamespace() + "delete();" %>'/><aui:script>Liferay.provide( window, '<portlet:namespace />edit', function() { document.<portlet:namespace />fm.method = "post"; var ids = document.<portlet:namespace />fm.<portlet:namespace />rowIds.value = Liferay.Util.listCheckedExcept(document.<portlet:namespace />fm, '<portlet:namespace />allRowIds'); if (confirm(ids.length)>1){ alert(); } submitForm(document.<portlet:namespace />fm, '<portlet:actionURL name="editSelected"></portlet:actionURL>'); }, ['liferay-util-list-fields']);</aui:script><aui:script> Liferay.provide( window, '<portlet:namespace />delete', function() { if (confirm('确定要删除吗?')) { document.<portlet:namespace />fm.method = "post"; document.<portlet:namespace />fm.<portlet:namespace />rowIds.value = Liferay.Util.listCheckedExcept(document.<portlet:namespace />fm, '<portlet:namespace />allRowIds'); submitForm(document.<portlet:namespace />fm, '<portlet:actionURL name="deleteSelected"></portlet:actionURL>'); } }, ['liferay-util-list-fields'] );</aui:script>
后台多Action处理,代码片段如下:
public void editSelected(ActionRequest actionRequest,ActionResponse actionResponse) {long[] ids = ParamUtil.getLongValues(actionRequest, "rowIds");for (int i = 0; i < ids.length; i++) {System.out.println("----编辑-----:" + ids[i]);}}public void deleteSelected(ActionRequest actionRequest,ActionResponse actionResponse) {long[] ids = ParamUtil.getLongValues(actionRequest, "rowIds");for (int i = 0; i < ids.length; i++) {try {MemberLocalServiceUtil.deleteMember(ids[i]);} catch (Exception e) {e.printStackTrace();}}}
代码下载地址:http://download.csdn.net/detail/u013310075/8387659
导入工程时,请选择导入到SDK目录下portlets目录下
- Liferay6.2开发之使用Search-Container
- Liferay6.2开发之使用Search-Container
- Liferay6.2开发之FriendlyURL的使用
- Liferay6.2开发之FriendlyURL的使用
- liferay6.2开发之索引查询
- Liferay6.2开发之弹出框
- liferay6.2使用CXF开发WbService接口
- liferay6.1.1之使用jsf
- 个人使用Liferay6.2开发时碰见的问题
- liferay6.2的开发学习文档
- liferay6.2教程之把 liferay视为协同平台
- liferay6.2 使用默认方式实现可配置的portlet
- liferay6.2导出excel
- 在liferay6.1中使用调度器
- liferay6.2 theme开发教程-第一节liferay theme主题开发系列教程第一讲-什么是theme
- 在eclipse3.4中,使用tomcat6作为container,开发jsf1.2-web
- liferay6.2-portlet2.0事件处理
- liferay6.2 集成CKEditor和ckfinder
- 产品经理之原型工具
- tabBar视图互相切换时弹出登陆页效果问题
- InnoDB undo log解析(一)
- keychain
- 动态内存管理详解:malloc/free/new/delete/brk/mmap
- Liferay6.2开发之使用Search-Container
- Sales_item.h (C++ Primer 第五版)
- 自定义控件其实很简单7/12
- 将数据保存在web.config配置文件中,及如何获取config配置文件中的数据
- 用百度map api展示时空数据(五)--老地图的添加与删除
- IOS 学习资料收集( 2015 -2-13 日不定时收集)
- 汇编语言---函数调用栈
- C++11 lambda表达式
- SZUOJ-Problem(A60):Roads