Comment puis-je obtenir des valeurs d'un selectOneMenu à l'intérieur d'un JSF datatable?
J'ai un JSF datatable avec un tas de lignes, chaque ligne ayant un selectOneMenu à l'intérieur comme ceci:
<h:form
<h:dataTable id="myTable"
binding="#{myBean.dataTable}"
value="#{myBean.dataTableRows}" var="row"
first="0" rows="0" dir="LTR" frame="hsides" rules="all">
<h:column>
<f:facet name="header">
<h:outputText value="Sample Name" />
</f:facet>
<h:outputText value="#{row.sampleName}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Role" />
</f:facet>
<h:selectOneMenu value="#{row.role}"
id="roleInput">
<f:selectItems value="#{myBean.allRoles}" />
</h:selectOneMenu>
</h:column>
</h:dataTable>
<h:commandButton value="Save" action="#{myBean.save}" />
</h:form>
Cependant, je n'arrive pas à trouver comment obtenir le rôle sélectionné de chaque ligne dans la méthode save. En d'autres termes, je veux sauver chaque ligne de la valeur. J'ai vu cet article, qui explique comment enregistrer une zone de texte d'entrée:
http://balusc.blogspot.com/2006/06/using-datatables.html#EditableDatatable
mais il ne semble pas s'appliquer à la h:selectOneMenu cas. Quelqu'un aurait-il un exemple de code qui fait cela?
Merci!
OriginalL'auteur | 2009-06-12
Vous devez vous connecter pour publier un commentaire.
Je vois à votre table de liaison de votre bean. Dans votre bean, vous pouvez utiliser le getDataTable() la méthode et l'accès. Java doc a dit:
Donc si vous faire de votre type de code:
Vous pouvez alors accéder à tous les champs que l'utilisateur a choisi. Im en utilisant ce dans mon propre projet et de son travail. La seule différence est que Im un casting pour mon propre type, au lieu de
List<String>
OriginalL'auteur Chris Dale
Il n'y a pas d'erreurs évidentes dans la forme - si votre méthode de sauvegarde n'est pas invoquée, essayez d'ajouter un messages tag à votre forme pour aider à déterminer la source du problème. Il serait utile si vous avez posté un exemple de bean qui reproduit le problème et de l'état dans le cadre du programme de mise en œuvre et la version que vous utilisez.
OriginalL'auteur McDowell