【发布时间】:2014-08-08 23:22:38
【问题描述】:
我想知道如何获取数据表的行索引,我的代码是
<p:dataTable
id="idDataTableItemArticulo"
var="articuloEspecificado"
value="#{ordenIngresoBean.oiu.articuloEspecificadoModel}"
paginator="true"
rows="5"
rowIndexVar="row"
paginatorPosition="bottom"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5"
emptyMessage="Lista de Proveedores vacia"
editable="true"
editMode="cell">
<p:column
width="25px;"
style="text-align:center;">
<f:facet name="header">
<h:outputLabel value="Nro"/>
</f:facet>
<h:outputText value="#{row+1}" />
</p:column>
<p:column width="70px;" style="text-align:center;">
<f:facet name="header">
<h:outputText value="Nro de Serie" />
</f:facet>
<p:inputText
id="idInNroSerie"
value="#{articuloEspecificado.numeroSerie}"
size="15"
onclick="this.select();"
required="#{not empty param[bndGuardar.clientId]}"
requiredMessage="Ingrese Serie">
<p:clientValidator event="keyup"/>
</p:inputText>
<p:message for="idInNroSerie" display="text"/>
</p:column>
<p:column width="70px;" style="text-align:center;" >
<f:facet name="header">
<h:outputText value="Codigo de Barras" />
</f:facet>
<p:inputText
value="#{articuloEspecificado.nroCodigoBarras}"
size="15"
onclick="this.select();"/>
</p:column>
<p:column width="70px;" style="text-align:center;" headerText="Estado">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{articuloEspecificado.estadoUsoArticulo.nombre}"/>
</f:facet>
<f:facet name="input">
<h:selectOneMenu value="#{articuloEspecificado.codigoEstado}" style="width:100%">
<f:selectItems
value="#{ordenIngresoBean.oiu.lstEstadoUsoArticulo}"
var="eua"
itemLabel="#{eua.nombre}"
itemValue="#{eua}" />
<p:ajax
event="change"
listener="#{ordenIngresoBean.seleccionarEstado}">
<f:setPropertyActionListener
value="#{row}"
target="#{ordenIngresoBean.oiu.index}" />
</p:ajax>
</h:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
</p:dataTable>
在celleditor的selectOneMenu事件中我得到了行索引。
bean中的方法是:
public void seleccionarEstado(AjaxBehaviorEvent event) {
System.out.println(" *** seleccionarEstado *** ");
System.out.println("Index: "+oiu.getIndex());
}
对象oiu是:
public class OrdenIngresoUtil implements Serializable {
private boolean lstArticuloEspecificadoVacia;
private Integer cantidad;
private Integer idSerie;
private Integer indexArticuloAlmacen;
private Integer index;
private String nroSerie;
private String numero; ..... more attributes and setter and getter
}
但是我没有得到该行的值,它是空的,为什么?
谢谢
【问题讨论】:
-
什么是托管 bean 范围?
-
您想从数据表中获取所选行的值吗?
-
是的,我要获取该行对象的索引
-
选择不适用于selectOneMenu事件,所以对象始终为null
标签: jsf-2 primefaces jsf-2.2