当我在datatable中删除一行时不会消失 - primefaces - Java?

时间:2015-01-29 19:29:52

标签: java primefaces

我有一个包含删除和编辑选项的表格。当我单击删除按钮时,数据不会消失。然后,当我在浏览器上单击“刷新”时,信息将被删除。

有什么问题?

<p:dataTable id="tabla2" value="#{b_rep.tabla}" var="o"  widgetVar="56" style="width: 600px;" editable="true">
    <p:ajax event="rowEdit" listener="#{b_rep.onEdit}" />  
    <p:ajax event="rowEditCancel" listener="#{b_rep.onCancel}" />    

    <f:facet name="header">Información subida</f:facet>

    <p:column headerText="Punto de venta" filterBy="#{o.nombre}" filterMatchMode="contains">
        <f:facet name="header">  
             <h:outputText value="Nombre" />  
        </f:facet>
        <h:outputText value="#{o.nombre}" />                         
    </p:column>

    <p:column headerText="Fecha" filterBy="#{o.fecha}" filterMatchMode="contains">
        <f:facet name="header">  
            <h:outputText value="Fecha"/>  
        </f:facet>
        <h:outputText value="#{o.fecha}">  
            <f:convertDateTime pattern="dd-MM-yyyy" />
        </h:outputText>    
    </p:column>

    <p:column headerText="Opc" style="width:60px">  
        <p:rowEditor></p:rowEditor>
    </p:column> 

</p:dataTable>

这是从表中删除信息的方法:

public void onCancel(RowEditEvent event) {  
    try {
       rep_struct change = (rep_struct) event.getObject();

       BD bd = new BD();
       Connection con = bd.Conectar(url);

       String sql = "DELETE FROM ventas";
       sql += " WHERE codpv=?";
       sql += " AND fecha=?";


       PreparedStatement ps = con.prepareStatement(sql);         
       ps.setString(1, change.getPdv());
       ps.setDate(2, new java.sql.Date(change.getFecha().getTime()));

       ps.executeUpdate();
       ps.close();

       //cargar_tabla();
       tabla.remove((rep_struct) event.getObject());

       FacesMessage msg = new FacesMessage("Item Borrado");
       FacesContext.getCurrentInstance().addMessage(null, msg);

    } catch (SQLException ex) {
       Logger.getLogger(rep_bean.class.getName()).log(Level.SEVERE, null, ex);
    }
}

1 个答案:

答案 0 :(得分:1)

  <p:ajax event="rowEdit" listener="#{b_rep.onEdit}" update="tabla2"/>  
  <p:ajax event="rowEditCancel" listener="#{b_rep.onCancel}" update="tabla2"/>  

您需要更新数据表