jsf 2 - JSF: Cancel datatable row edit after data submission in Primefaces -


i'm developing web-app in jsf 2.1 + primefaces 5.1. have datatable editable rows. catch rowedit event , call db procedure validations of new data , update record when user clicks "check" button. there's problem: datatable row in gui updated whether validations succeed or fail. want changes in row data reversed previous state if validations done in db procedure fail. how can that?

<p:datatable id="users_table_id" var="user" value="#{usersbean.users}" rowkey="#{user.id}" paginator="true"             paginatortemplate="{currentpagereport}  {firstpagelink} {previouspagelink} {pagelinks} {nextpagelink} {lastpagelink} {rowsperpagedropdown}"                rowsperpagetemplate="5,10,15" emptymessage="#{msgs.no_records}" sortby="#{user.id}" sortorder="ascending" rows="15" editable="true">             <f:facet name="header">                 #{msgs.users}                            </f:facet>             <p:ajax event="rowedit" listener="#{usersbean.onrowedit}"/>             <p:ajax event="roweditinit" listener="#{usersbean.onroweditinit}"/>             <p:column headertext="#{msgs.id}" sortby="#{user.id}" styleclass="centered-column">                 #{user.id}             </p:column>                       <p:column headertext="#{msgs.description}" sortby="#{user.description}" styleclass="centered-column">                 <p:celleditor>                     <f:facet name="output">#{user.description}</f:facet>                     <f:facet name="input"><p:inputtext value="#{user.description}" styleclass="editable-cell"/></f:facet>                 </p:celleditor>             </p:column>              ...             <p:column styleclass="datatable-row-editor">                 <p:roweditor/>             </p:column> </p:datatable> 
@managedbean @viewscoped public class usersbean implements serializable {      private list<dtouser> users;      public void onrowedit(roweditevent event) {         logger.entry();         dtouser dtouser = (dtouser)event.getobject();         this.updateuser(dtouser);         logger.exit();     }      public void updateuser(dtouser dtouser) {          try {             logger.entry(dtouser);             dtobousers dtobousers = dtouser.todtobousers();             dtotypegenericresponse genericresponse = usersservice.updateuser(dtobousers);             if (genericresponse.iserror()) {                 // error in user update             } else {                 // update successful             }             logger.exit(dtouser);         } catch (exception e) {             logger.error(exceptionutils.getstacktrace(e.fillinstacktrace()));         }     } } 


Comments

Popular posts from this blog

cakephp - simple blog with croogo -

How to group boxplot outliers in gnuplot -

bash - Performing variable substitution in a string -