Can not save ListShuttle status when change sourcelist, acti
xuantoan2510 Jan 7, 2008 10:40 PMBecause there is few problem of listshuttle when sourcelist is very great so I must use a filter for sourcelist. However i can not get action (Save) after filter.
My jsp
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%> <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%> <f:view> <h:form> <h:commandButton action="#{TestBean.actionFilter}" value="Filter" /> </h:form> <h:form id="form1"> <h:panelGrid columns="1"> <h:column> <rich:listShuttle sourceValue="#{TestBean.clipbeans}" targetValue="#{TestBean.folder}" var="items" sourceCaptionLabel="Kho Clips" targetCaptionLabel="Folder" converter="listShuttleconverter" id="idList" sourceListWidth="100%" targetListWidth="100%" > <rich:column width="20"> <f:facet name="header"> <h:outputText value="test" /> </f:facet> <h:outputText value="#{items.clipID}"></h:outputText> </rich:column> <rich:column width="20"> <f:facet name="header"> <h:outputText value="test" /> </f:facet> <h:outputText value="#{items.cateName}"></h:outputText> </rich:column> </rich:listShuttle> </h:column> <h:column> <h:commandButton action="#{TestBean.actionSave}" value="Save" /> </h:column> </h:panelGrid> </h:form> </f:view>
My Item
public class ClipBean { /** * */ private String clipID; private String cateName; public ClipBean(){ } public ClipBean(String clipId,String cateName){ this.setCateName(cateName); this.setClipID(clipId); } public String getCateName() { return cateName; } public void setCateName(String cateName) { this.cateName = cateName; } public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((clipID == null) ? 0 : clipID.hashCode()); result = prime * result + ((cateName == null) ? 0 : cateName.hashCode()); return result; } public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final ClipBean other = (ClipBean) obj; if (clipID == null) { if (other.clipID != null) return false; } else if (!clipID.equals(other.clipID)) return false; if (cateName == null) { if (other.cateName != null) return false; } else if (!cateName.equals(other.cateName)) return false; return true; } public String getClipID() { return clipID; } public void setClipID(String clipID) { this.clipID = clipID; } }
My Bean
public class TestBean { ArrayList clipbeans; ArrayList folder; /** * */ public TestBean() { // TODO Auto-generated constructor stub clipbeans=new ArrayList(200); folder=new ArrayList(100); for (int i=0;i<200;i++){ ClipBean cl=new ClipBean(); cl.setCateName("test_"+i); cl.setClipID("aaa"); clipbeans.add(cl); } } public ArrayList getClipbeans() { return clipbeans; } public void setClipbeans(ArrayList clipbeans) { this.clipbeans = clipbeans; } public ArrayList getFolder() { return folder; } public void setFolder(ArrayList folder) { this.folder = folder; } public void actionFilter(){ System.out.println("Filter"); clipbeans=new ArrayList(200); folder=new ArrayList(100); for (int i=0;i<200;i++){ ClipBean cl=new ClipBean(); cl.setCateName("Filter_"+i); cl.setClipID("123"); clipbeans.add(cl); } } public void actionSave(){ System.out.println("save"); } }
I can understand. Please help me. Thanks