Jsf 2 primefaces datatable行删除不会删除UI中的同一行

Jsf 2 primefaces datatable行删除不会删除UI中的同一行,jsf-2,primefaces,Jsf 2,Primefaces,我正在使用PrimeFaces4.0。我有一个动态数据表,每行有selectonemenu组件,每行有delete按钮。单击delete按钮,managedbean列表中的确切行被删除,但在UI中,我只看到最后一行被删除。这是非常误导的 通过谷歌搜索,我在下面的链接中看到了同样的问题,删除按钮中设置的say's immediate=true导致了这个问题。 想知道immediate属性如何导致这个问题 但我的实际问题是,我无法删除immediate=true属性,因为如果我这样做,单击dele

我正在使用PrimeFaces4.0。我有一个动态数据表,每行有selectonemenu组件,每行有delete按钮。单击delete按钮,managedbean列表中的确切行被删除,但在UI中,我只看到最后一行被删除。这是非常误导的

通过谷歌搜索,我在下面的链接中看到了同样的问题,删除按钮中设置的say's immediate=true导致了这个问题。

想知道immediate属性如何导致这个问题

但我的实际问题是,我无法删除immediate=true属性,因为如果我这样做,单击delete按钮将触发验证阶段,然后我将获得验证消息。我希望用户能够在验证失败的情况下删除这些行,因此我在“删除”按钮中设置了immediate=true,以便该行不被验证

有人能帮忙吗

                            <p:dataTable id="levDataTbl" value="#{leventrybean.leaves}" var="lev"
                             widgetVar="levDataTbl">  
                             <p:column >
                                <p:selectOneMenu value="#{lev.employee}"  var="e"
                                    filter="true" filterMatchMode="contains" id="empDrpDown"
                                    rendered="#{leventrybean.sizeOfDirectorates > 0 }" required="true"
                                    styleClass="px75DrpDown" converter="empconverter" 
                                     >
                                    <f:selectItem itemLabel="-Select-" itemValue="" />
                                    <f:selectItems value="#{leventrybean.employees}" var="employee"
                                    itemLabel="#{employee.empName}" itemValue="#{employee}"/>   
                                    <p:ajax process="@this" update="@form" listener="#{lev.changeEmpListener}" /> 
                                    <p:column >
                                    #{e.empName}
                                    </p:column>
                                    <p:column >
                                    #{e.empCd}
                                    </p:column>         
                                </p:selectOneMenu>                                            
                                <p:outputLabel value="#{sessionScope['fullname']}" 
                                    rendered="#{leventrybean.sizeOfDirectorates == 0 }"
                                    />
                             </p:column>
                             <p:column >
                                <p:selectOneMenu value="#{lev.selectedLeaveType}" 
                                    filter="true" filterMatchMode="contains" var="levtp" id="levDrpDown"
                                    rendered="true" converter="levtypconverter" styleClass="px75DrpDown"
                                    required="true">  
                                     <f:selectItem itemLabel="-Select-" itemValue="" />
                                    <f:selectItems value="#{lev.leavesAllowed}" var="l"
                                        itemLabel="#{l.leaveTypeDesc}" itemValue="#{l}"/>
                                    <p:ajax process="@this" update="@form" listener="#{lev.changeLevTypListener}"/>    
                                    <p:column>#{levtp.leaveTypeDesc}</p:column>
                                </p:selectOneMenu>
                             </p:column>
                             <p:column  style="width:6%">
                                <p:commandButton id="deleteLeave" update="@form" image="ui-icon ui-icon-trash"  >
                                    <f:setPropertyActionListener value="#{lev}" target="#{leventrybean.selectedLeaveForDel}" />
                                </p:commandButton>
                             </p:column>                                           
                            </p:dataTable>

没有密码。没有密码。没有密码。为什么?道歉。将很快用代码更新。
public void setSelectedLeaveForDel(Leave obj){
    deleteLeave(obj);
}
private void deleteLeave(Object obj){
    try{

        this.leaves.remove(obj);

    }catch(Exception e){
        log.error("Error in deleteLeave() ::"+e);
        log.error(Utility.getStackTrace(e));            
    }    
}