チェックボックス選択機能でデータテーブルを使用しますが、いくつかの行を選択した後にフッターボタンをクリックすると、それらの行はオブジェクト selectedCommandes[] に影響しません。その証拠は、メソッドに行を追加したことです。 selectedCommandes[] の長さですが、0 が返されます。理由はわかりません。すべてのコードが適切であると思います。ここにデータテーブルがあります。
<p:dataTable id="cars" var="car" value="#{commandesUserController.mediumCommandesModel}" selection="#{commandesUserController.selectedCommandes}" tableStyle="width:auto">
<f:facet name="header">
Checkbox Based Selection
</f:facet>
<p:column selectionMode="multiple" style="width:18px" />
<p:column headerText="Model" style="width:100px">
<h:outputText value="#{car.id}" />
</p:column>
<p:column headerText="Year" style="width:100px">
<h:outputText value="#{car.dateEnvoi}" />
</p:column>
<p:column headerText="Manufacturer" style="width:100px">
<h:outputText value="#{car.dateLivraisonRecommande}" />
</p:column>
<p:column>
<p:commandLink ajax="false" value="Editer" action="updateUser_v1" >
<f:setPropertyActionListener value="#{car}" target="#{editUserController.u1}" />
</p:commandLink>
</p:column>
<p:column>
<p:commandLink value="Supprimer" oncomplete="confirmation.show()" >
<f:setPropertyActionListener value="#{car}" target="#{commandesUserController.selectedCommande}" />
</p:commandLink>
</p:column>
<p:column style="width:40px">
<p:commandButton id="selectButton" update=":myform:carDlg" oncomplete="carDialog.show()" icon="ui-icon-search" title="View">
<f:setPropertyActionListener value="#{car}" target="#{commandesUserController.selectedCommande}" />
</p:commandButton>
</p:column>
<f:facet name="footer">
<p:commandButton id="supprion" value="supprimer selection" oncomplete="confirmation2.show()" />
</f:facet>
</p:dataTable>
ここに問題があるボタンがあります:
<f:facet name="footer">
<p:commandButton id="supprion" value="supprimer selection" oncomplete="confirmation2.show()" />
</f:facet>
上のボタンをクリックすると表示されるダイアログは次のとおりです。
<p:confirmDialog id="confirmDialog2" message="etes vous sur de vouloir supprimer ces commande avec tous les données et fichiers correspondants !"
header="confirmation de suppression" severity="alert" widgetVar="confirmation2">
<p:commandButton id="confirm2" value="oui" update="cars" oncomplete="confirmation2.hide()"
action="#{commandesUserController.deleteCommandes()}" />
<p:commandButton id="decline2" value="non" onclick="confirmation2.hide()" type="button" />
</p:confirmDialog>
そしてここに managedBean のメソッドがあります:
public String deleteCommandes(){
System.out.println("je suis dans delete l ensemble avec tous = "+selectedCommandes.length);
for(int j = 0;j<selectedCommandes.length;j++){
selectedCommandes[j].setListFichiers(uh.getFichiersById(this.selectedCommandes[j].getId()));
for(int i = 0; i<selectedCommandes[j].getListFichiers().size();i++){
//System.out.println("alors "+selectedCommande.getListFichiers().get(i).getId());
uh.deleteFichier(selectedCommandes[j].getListFichiers().get(i));
}
uh.deleteCommande(selectedCommandes[j]);
}
return "commandesUser";
}
この行: System.out.println("je suis dans delete l ensemble avec tous = "+selectedCommandes.length); 常に 0 を返す
SelectableDataModel を実装するクラスを既に作成しました
問題を説明したことを願っています
何か考えはありますか ありがとう