2008-09-19 9 views
0

J'ai une table JSF Woodstock avec des cases à cocher. Quand une ligne est sélectionnée, je veux faire un traitement avec ces éléments. J'ai réussi à obtenir une sélection d'objets RowKey mais je ne trouve pas comment récupérer les objets originaux que j'ai mis en arrière. La table est remplie par un objet ObjectListDataProvider.Comment récupérer les lignes sélectionnées d'une table en bois

Répondre

1

Toujours agréable de pouvoir vous répondre à vos questions. J'ai réussi à le résoudre en transformant le fournisseur de données de la table en ObjectListDataProvider et en utilisant la méthode 'getObject' pour récupérer mon objet d'origine.

+0

J'ai le même problème s'il vous plaît pouvez-vous poster une pièce de code? –

0

J'ai donc trébuché sur cela et j'espérais trouver comment faire la sélection et obtenir les informations sur les lignes. J'ai finalement compris et j'ai pensé que d'autres pourraient bénéficier de la façon dont je l'ai fait.

J'ai ajouté un RadioButton à une colonne de table dans la JSP et a ajouté un valueChangeListener

<ui:radioButton id="radioButton1" name="radioButton-group1" valueChangeListener="#{MyBeanPage.radioButton1_processValueChange}" /> 

Dans mon code Java j'ai créé la fonction valueChangeListener et emmagasinés les informations actuelles de ligne.

public void radioButton1_processValueChange(ValueChangeEvent event) { 
    TableRowDataProvider trdp = (TableRowDataProvider)getValue("#{currentRow}"); 
    setCurrentRowKey(trdp.getTableRow()); //Sets an instance variable for the RowKey 
} 

Maintenant, si vous avez des boutons qui veulent manipuler les données de la ligne sélectionnée, vous pouvez le faire pour obtenir les données d'objet. Jasper a mentionné ceci ci-dessus.

/*getObjectListDataProviderImpl() returns the implementation of 
*ObjectListDataProvider for your dynamic data. 
*/ 
getObjectListDataProviderImpl().getObject(getCurrentRowKey()); 

Vous pourriez être en mesure d'utiliser quelque chose comme attribut selectedValue pour le bouton radio en association avec quelque chose d'autre au lieu de faire valueChangeListener et éviter d'avoir à faire une fonction ValueChange, mais cela a fonctionné, donc je ne tenais pas à comprendre une autre façon.

Questions connexes