我正在尝试编辑primitives dataTable中的行数据,但不起作用我在下面的链接中尝试了相同的primefaces展示代码]
http://www.primefaces.org/showcase/ui/data/datatable/edit.xhtml
我的jsf页面
<h:form id="form"> <p:dataTable id="depTable" value="#{departmentBean.departments}" var="dep" editable="true"> <f:facet name="header"> All departments </f:facet> <p:ajax event="rowEdit" listener="#{departmentBean.onRowEdit}" update=":form:depTable" /> <p:ajax event="rowEditCancel" listener="#{departmentBean.onRowCancel}" update=":form:depTable" /> <p:column headerText="Id"> <p:cellEditor> <f:facet name="output"> <h:outputText value="#{dep.id}" /> </f:facet> <f:facet name="input"> <p:inputText id="modelInput" value="#{dep.id}" style="width:100%" /> </f:facet> </p:cellEditor> </p:column> <p:column headerText="Name"> <p:cellEditor> <f:facet name="output"> <h:outputText value="#{dep.name}" /> </f:facet> <f:facet name="input"> <p:inputText value="#{dep.name}" style="width:100%" /> </f:facet> </p:cellEditor> </p:column> <p:column style="width:32px"> <p:rowEditor /> </p:column> </p:dataTable> </h:form>
和bean中的方法
public void onRowEdit(RowEditEvent event) { System.out.println(((Department) event.getObject()).getName()); FacesMessage msg = new FacesMessage("Car Edited", ((Department) event.getObject()).getName()); FacesContext.getCurrentInstance().addMessage(null, msg); } public void onRowCancel(RowEditEvent event) { FacesMessage msg = new FacesMessage("Edit Cancelled", ((Department) event.getObject()).getName()); FacesContext.getCurrentInstance().addMessage(null, msg); }
我正在使用primfaces 4.0
我正在尝试编辑primfaces dataTable中的行数据,但无法正常工作,我尝试使用以下链接http://www.primefaces.org/showcase/ui/data/datatable/edit.xhtml我的jsf中相同的primefaces展示代码...
在我的情况下,问题是我的后备bean是@SessionScoped(在PF示例中是@ViewScoped),所以我需要修改dataTabe值:
我遇到了这个问题,解决方法是将dataTable放在窗体中。