我正在将PF 3.0RC1与JSF 2.0一起使用。

我有一个数据表,在每一行上都有一个删除按钮。一旦按下删除键,相应的行就会从db中删除,但数据表不会刷新。它仍然显示旧的行集。如何获取要刷新的数据表?

这是代码

   <h:form id="form">
     <p:dataTable  value="#{myController.displayList}" var="item" id="tbl">
       <p:column>
         <p:commandButton image="icon icon-delete"
                          id="del" action="#{myController.del}"
                          update="@form">
           <f:setPropertyActionListener value="#{item}"
              target="#{myController.selected}" for="del"/>
         </p:commandButton>
       </p:column>
     </p:dataTable>
   </h:form>


displayList是

private List<Image> displayList = new ArrayList<Image>();

public List<Image> getDisplayList() {
        Student std = (Student) getSelected;
        displayList = this.ejbFacade.getImages(std.getId()); // this method gets the list of images which has status = 1
        return displayList;
}

public void setDisplayList(List<Image> displayList) {
    this.displayList = displayList;
}


//这是将图片的标志设置为0的del方法(当从视图中按下del图标时)
 公共无效del(){
        selected.setActiveStatus(0);
        MyController myController =(MyController)facesContext.getApplication()。getELResolver()。
                getValue(facesContext.getELContext(),null,“ myController”);
        displayList.clear();
        myController.getFacade()。edit(selected);
    }

最佳答案

我很确定您要从数据库中删除该行,但dataTable records list不会更新/刷新。通过从列表中删除已删除的记录或用数据库中的数据重新填充列表来更新您的记录列表(尽管这会消耗一些资源)。
给我看一下Java代码!

PS:也恭喜您问了第1000个素字问题! :)所以我随时为您服务...

09-30 17:45
查看更多