好家伙,我有这个Web应用程序,在PrimeFaces Showcase中实现了DataTable之后,我意识到通过单击删除一行,它总是会删除DataTable中的第一行,这将是一个很好的帮助。
我的数据表代码:
<p:dataTable value="#{facturaBean.consultasTemp}" paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" selectionMode="single" rowKey="#{consulta.ordem}" rows="5" paginator="true" widgetVar="tblConsultas" var="consulta">
<p:column style="text-align: center" headerText="Operação" width="100">
<p:commandButton style="font-size: 17px" icon="fa fa-trash-o" action="#{facturaBean.removerConsulta(consulta)}" update="@form"/>
</p:column>
<p:column headerText="Consulta/Procedimento">
<h:outputText value="#{consulta.consulta}"></h:outputText>
</p:column>
<p:column headerText="Data/Hora">
<h:outputText value="#{consulta.consultaData}"></h:outputText>
</p:column>
<p:column headerText="Médico">
<h:outputText value="#{consulta.consultaMedico}"></h:outputText>
</p:column>
<p:column headerText="Valor (MT)">
<h:outputText value="#{consulta.consultaValor}"></h:outputText>
</p:column>
<p:column headerText="Quantidade">
<h:outputText value="#{consulta.consultaQuantidade}"></h:outputText>
</p:column>
<p:column headerText="Valor Total (MT)">
<h:outputText value="#{consulta.consultaValorTotal}"></h:outputText>
</p:column>
</p:dataTable>
删除行方法:
private ArrayList consultasTemp=新的ArrayList((;
public String removerConsulta(ConsultaTemp consulta) {
consultasTemp.remove(consulta);
return null;
}
有关详细信息的视频:在此处输入链接描述
非常感谢大家的帮助和知识,但我无法使用rowKey="{consulta.ordem}">属性,我创建了以下类:
public String removerConsulta(ConsultaTemp consulta) {
for (int i = 0; i < consultasTemp.size(); i++) {
if (consultasTemp.get(i).getConsulta().equals(consulta.getConsulta())) {
consultasTemp.remove(i);
}
}
return null;
}