Note that there are some explanatory texts on larger screens.

plurals
  1. POrow editing is not working in datatable primefaces
    text
    copied!<p>During editing of datatable values, the values are not updated in the screen as well as in listener method. The listener method:</p> <pre><code>public void onEdit(RowEditEvent event) throws ClassNotFoundException, SQLException { Employee e=(Employee) event.getObject(); name=e.getName(); department=e.getDepartment(); salary=e.getSalary(); place=e.getPlace(); ...... ..... update query } </code></pre> <p>I get only the selected object and its values, but not the updated values.</p> <p>This is my datatable XHTML:</p> <pre><code>&lt;h:form id="form"&gt; &lt;p:growl id="messages" showDetail="true" /&gt; &lt;p:dataTable var="e" value="#{employees.eList}" id="elist1" editable="true"&gt; &lt;f:facet name="header"&gt; In-Cell Editing &lt;/f:facet&gt; &lt;p:ajax event="rowEdit" listener="#{employees.onEdit}" update=":form:messages" /&gt; &lt;p:ajax event="rowEditCancel" listener="#{employees.onCancel}" update=":form:messages" /&gt; &lt;p:column headerText="name" style="width:30%"&gt; &lt;p:cellEditor&gt; &lt;f:facet name="output"&gt; &lt;h:outputText value="#{e.name}" /&gt; &lt;/f:facet&gt; &lt;f:facet name="input"&gt; &lt;h:inputText value="#{e.name}" style="width:100%" /&gt; &lt;/f:facet&gt; &lt;/p:cellEditor&gt; &lt;/p:column&gt; &lt;p:column headerText="department" style="width:20%"&gt; &lt;p:cellEditor&gt; &lt;f:facet name="output"&gt; &lt;h:outputText value="#{e.department}" /&gt; &lt;/f:facet&gt; &lt;f:facet name="input"&gt; &lt;h:inputText value="#{e.department}" style="width:100%" label="department" /&gt; &lt;/f:facet&gt; &lt;/p:cellEditor&gt; &lt;/p:column&gt; &lt;p:column headerText="salary" style="width:20%"&gt; &lt;p:cellEditor&gt; &lt;f:facet name="output"&gt; &lt;h:outputText value="#{e.salary}" /&gt; &lt;/f:facet&gt; &lt;f:facet name="input"&gt; &lt;h:inputText value="#{e.salary}" style="width:100%" label="salary" /&gt; &lt;/f:facet&gt; &lt;/p:cellEditor&gt; &lt;/p:column&gt; &lt;p:column headerText="place" style="width:20%"&gt; &lt;p:cellEditor&gt; &lt;f:facet name="output"&gt; &lt;h:outputText value="#{e.place}" /&gt; &lt;/f:facet&gt; &lt;f:facet name="input"&gt; &lt;h:inputText value="#{e.place}" style="width:100%" label="place" /&gt; &lt;/f:facet&gt; &lt;/p:cellEditor&gt; &lt;/p:column&gt; &lt;p:column style="width:6%"&gt; &lt;p:rowEditor /&gt; &lt;/p:column&gt; &lt;/p:dataTable&gt; &lt;/h:form&gt; </code></pre> <p>This is my managed bean:</p> <pre><code>@ManagedBean(name = "employees") @ViewScoped public class UserData { // properties private String name; private String department; private String salary; private String place; private ArrayList&lt;Employee&gt; eList; private Employee selectedemp; private void clear() { name=""; department=""; salary=""; place=""; } //returning all employees public ArrayList&lt;Employee&gt; geteList() throws ClassNotFoundException, SQLException { Connection conn=DbConnection.connectFunc(); Statement stmt=conn.createStatement(); String sql="select * from employee"; ResultSet rs=stmt.executeQuery(sql); eList=new ArrayList&lt;Employee&gt;(); while(rs.next()) { Employee emp=new Employee(); emp.setName(rs.getString(2)); emp.setDepartment(rs.getString(3)); emp.setSalary(rs.getString(4)); emp.setPlace(rs.getString(5)); eList.add(emp); } return eList; } public void onEdit(RowEditEvent event) throws ClassNotFoundException, SQLException { Employee e=(Employee) event.getObject(); name=e.getName(); System.out.println(name); department=e.getDepartment(); System.out.println(department); salary=e.getSalary(); System.out.println(salary); place=e.getPlace(); System.out.println(place); Connection conn=DbConnection.connectFunc(); Statement stmt=conn.createStatement(); String sql="update employee set department='"+department+"',salary='"+salary+"',place='"+place+"'where name='"+name+"'"; int i=stmt.executeUpdate(sql); if(i!=0) { FacesContext context=FacesContext.getCurrentInstance(); context.addMessage(null, new FacesMessage("updated successfully")); } conn.close(); } //onCancel public void onCancel(RowEditEvent event) { } ...setter and getters </code></pre> <p>If i use view scope, the following exception occurs:</p> <pre><code>HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception java.io.NotSerializableException: com.solv.datatable.UserData java.io.ObjectOutputStream.writeObject0(Unknown Source) java.io.ObjectOutputStream.writeObject(Unknown Source) java.util.HashMap.writeObject(Unknown Source) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) java.io.ObjectOutputStream.writeSerialData(Unknown Source) java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) java.io.ObjectOutputStream.writeObject0(Unknown Source) java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) java.io.ObjectOutputStream.writeSerialData(Unknown Source) java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) java.io.ObjectOutputStream.writeObject0(Unknown Source) java.io.ObjectOutputStream.writeArray(Unknown Source) java.io.ObjectOutputStream.writeObject0(Unknown Source) java.io.ObjectOutputStream.writeObject(Unknown Source) java.util.HashMap.writeObject(Unknown Source) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) java.io.ObjectOutputStream.writeSerialData(Unknown Source) java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) java.io.ObjectOutputStream.writeObject0(Unknown Source) java.io.ObjectOutputStream.writeObject(Unknown Source) com.sun.faces.renderkit.ClientSideStateHelper.doWriteState(ClientSideStateHelper.java:325) com.sun.faces.renderkit.ClientSideStateHelper.writeState(ClientSideStateHelper.java:173) com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:122) com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:166) com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225) com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:419) com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:125) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) javax.faces.webapp.FacesServlet.service(FacesServlet.java:410) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.26 logs. </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload