bonjour,
la datatable de sélection multiple de primefaces n'a pas marché chez moi, malgré que j'ai essayé de faire le meme code que celui de la démonstration du site : http://www.primefaces.org/showcase-l...ioCheckbox.jsf
mais malheureusement lorsque je coche des lignes et je clique sur le bouton view la datalist renvoie 0 lignes
je vous montrerai le code , si vous pouvez trouvez quelque choses qui ne marche pas
voila la page xhtml :
voila le managed-Bean :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 <?xml version="1.0" encoding="UTF-8"?> <!-- To change this template, choose Tools | Templates and open the template in the editor. --> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:f="http://java.sun.com/jsf/core"> <h:head> <title>TODO supply a title</title> </h:head> <h:body> <h:form id="form"> <p:dataTable id="multiCars" var="car" value="#{fortest.mediumCarsModel}" paginator="true" rows="10" selection="#{fortest.selectedCars}"> <f:facet name="header"> Checkbox Based Selection </f:facet> <p:column selectionMode="multiple" style="width:18px" /> <p:column headerText="id"> #{car.id} </p:column> <p:column headerText="date envoi"> #{car.dateEnvoi} </p:column> <p:column headerText="decision" > #{car.decision} </p:column> <f:facet name="footer"> <p:commandButton id="multiViewButton" value="View" icon="ui-icon-search" update=":form:displayMulti" oncomplete="multiCarDialog.show()"/> </f:facet> </p:dataTable> <p:dialog id="multiDialog" header="Car Detail" widgetVar="multiCarDialog" height="300" showEffect="fade" hideEffect="explode"> <p:dataList id="displayMulti" value="#{fortest.selectedCars}" var="selectedCar"> id : #{selectedCar.id}, dateEnvoi #{selectedCar.dateEnvoi} </p:dataList> </p:dialog> </h:form> </h:body> </html>
et voila le datamodel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 @ManagedBean @SessionScoped public class fortest implements Serializable { private Commande[] selectedCars; private dortestDataModel mediumCarsModel; utilisateursHelper uh; /** * Creates a new instance of fortest */ public fortest() { uh = new utilisateursHelper(); mediumCarsModel = new dortestDataModel(uh.getAllCommandes()); } public void setSelectedCars(Commande[] selectedCars) { System.out.println("alors je suis donc la size : "+selectedCars.length); this.selectedCars = selectedCars; } public Commande[] getSelectedCars() { return selectedCars; } public dortestDataModel getMediumCarsModel() { return mediumCarsModel; } }
merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 public class dortestDataModel extends ListDataModel<Commande> implements SelectableDataModel<Commande> { utilisateursHelper uh; public dortestDataModel() { } public dortestDataModel(List<Commande> data) { super(data); uh = new utilisateursHelper(); } @Override public Commande getRowData(String rowKey) { //In a real app, a more efficient way like a query by rowKey should be implemented to deal with huge data List<Commande> cars = (List<Commande>) uh.getAllCommandes(); for(Commande car : cars) { if(car.getId().equals(rowKey)) return car; } return null; } @Override public Object getRowKey(Commande car) { return car.getId(); } }
Partager