我用incell编辑数据表已经困难了好几天了,我看不出为什么它没有更新数据。
这是我的数据表:
<h:form id="form">
<p:growl id="messages" showDetail="true" />
<p:dataTable var="car" value="#{QuestionBean.listQuestion}"
id="carList" editable="true">
<p:ajax event="rowEdit" update="@this" listener="#{QuestionBean.rowEditListener}" />
<f:facet name="header">
Liste des questions
</f:facet>
<p:column headerText="Text de la question">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{car.text}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{car.text}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column headerText="Modifier">
<p:rowEditor/>
</p:column>
<p:column id="Sup">
<f:facet name="header">
<h:outputText value=" " />
</f:facet>
<p:commandButton action="#{QuestionBean.delete}" update=":form"
id="iconOnly" icon="ui-icon-closethick" title="Icon Only">
<f:setPropertyActionListener value="#{car.id}"
target="#{QuestionBean.id}" />
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
并在bean中:
public void rowEditListener(RowEditEvent ev) {
try {
Question q = (Question) ev.getObject();
System.out.println("text equals "+q.getText());
resp.update(q);
init();
} catch (Exception e) {
e.printStackTrace();
}
}
ev.getObject()检索初始值,而不是文本框中插入的值。