重複の可能性:
Datatableで編集可能な行を作成する
皆さん、
次の表で、行を編集したいと思います。
編集ボタンをクリックすると、画面は次のようになります。編集可能なフィールド
[保存]ボタンをクリックすると、同じ行の新しい値でリストが更新されます。たとえば、行を2000、Micky、4500に変更するとします。
どうすればこれを達成できますか?
以下のロジックを試しましたが、機能しません。助けてください。
<h:dataTable binding="#{myBean.dataTable}" id="beanTable" value="#{myBean.dataList}" var="dataItem" styleClass="dataTableEx" headerClass="headerClass"
columnClasses="columnClass1" rowClasses="rowClass1,rowClass2" border="1" cellpadding="2" cellspacing="0" >
<h:column>
<f:facet name="header">
<h:outputText value="Save" />
</f:facet>
<h:commandButton value="Save" actionListener="#{myBean.saveAction}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Edit" />
</f:facet>
<h:commandButton id="edit" value="Edit" actionListener="#{myBean.editAction}" />
</h:column>
public void editAction(ActionEvent e){
MyData data = (MyData)dataTable.getRowData();
data.setEditable(true);
}
// saveAction is not working.
public void saveAction(ActionEvent e){
int index = dataTable.getRowIndex();
MyData data = (MyData)dataTable.getRowData(); // returns old value not the newly edited values.
dataList.remove(index); // dataList has the bean objects
dataList.add(index, data);
}