nio2
Messages postés12Date d'inscriptionvendredi 13 juillet 2012StatutMembreDernière intervention19 septembre 2012
-
2 sept. 2012 à 01:25
nio2
Messages postés12Date d'inscriptionvendredi 13 juillet 2012StatutMembreDernière intervention19 septembre 2012
-
3 sept. 2012 à 14:14
bonjour,
j'ai une datatable que je veux modifier par code : cette datatable contient des checbox dans une colonne, quelque uns sont desactivés (pas de problemes jusqu'ici) mais les autres qui sont activés : je veux qu'une seule checkbox au plus a chque moment soit coché : ca veut dire si l'utilisateur coche une checkbox alors si il avait deja ciché une autre avant alors elle doit etre decoché
alors pour faire ca voila mon code :
nio2
Messages postés12Date d'inscriptionvendredi 13 juillet 2012StatutMembreDernière intervention19 septembre 2012 3 sept. 2012 à 12:05
merci pour l'idée Julien39,
j'avais deja vu cette exemple mais j'avais pas l'idée d'aller le chercher a ce moment
juste une question concernant la mise en place de cette exemple
dans la classe CarDataModel
comment je peux implementer cette methode pour mon cas :
@Override
public Car 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<Car> cars = (List<Car>) getWrappedData();
for(Car car : cars) {
if(car.getModel().equals(rowKey))
return car;
}
return null;
}
@ManagedBean
@SessionScoped
public class NewJSFManagedBean {
metiers.admin.stockHelper sh;
Papier selectedPapier;
List papiers;
papierDataModel mediumPapiersModel;
/**
* Creates a new instance of NewJSFManagedBean
*/
public NewJSFManagedBean() {
sh = new metiers.admin.stockHelper();
papiers = new ArrayList();
papiers = sh.getPapiers();
for(Papier pap : papiers ){
pap.setChecked(false);
}
mediumPapiersModel = new papierDataModel(papiers);
}
public Papier getSelectedPapier() {
System.out.println("j ai selectionz ");
return selectedPapier;
}
public void setSelectedPapier(Papier selectedPapier) {
System.out.println("je suis selectionné mon numero : "+selectedPapier.getLibelle());
this.selectedPapier = selectedPapier;
}
public papierDataModel getMediumPapiersModel() {
return mediumPapiersModel;
}
public void onRowSelect(SelectEvent event) {
System.out.println("je suis dans onRowSelect");
}
}
et voila la classe papierDataModel :
package controlleurs.admin;
import java.util.List;
import javax.faces.model.ListDataModel;
import org.primefaces.model.SelectableDataModel;
import pojos_mappingFiles.Papier;
public class papierDataModel extends ListDataModel implements SelectableDataModel {
public papierDataModel() {
}
public papierDataModel(List data) {
super(data);
}
@Override
public Object getRowKey(Papier t) {
return t.getId().toString();
}
@Override
public Papier getRowData(String rowKey) {
List papiers = (List) getWrappedData();
for(Papier car : papiers) {
if(car.getId().toString().equals(rowKey))
return car;
}
return null;
}
}
mais malheureusement la boite de dialogue ne s'affiche pas lorsque je coche une des radiobutton de la datatable