Bom Pessoal, estou com um problema que já esta fazendo aniversário,
tenho uma grid de item que tenho 2 h:inputText que irei inserir valor e quantidade desses itens direto na grid,
e queria alterar direto na lista do Bean para que possa ser salvo depois
segue DataTable:
<p:dataTable value="#{itensPropCotacoesBean.listaItensPropCotacao}"
rowStyleClass="coluna" var="item1"
style="font-size: 10px; width:auto; " >
<p:column style="width: 25px;">
<f:facet name="header">
<h:outputText value="N. Item"/>
</f:facet>
<h:outputText value="#{item1.iditenspropcotacoes}"/>
</p:column>
<p:column style="width: 25px;">
<f:facet name="header">
<h:outputText value="Cod. Prod."/>
</f:facet>
<h:outputText value="#{item1.ipcIdproduto}"/>
</p:column>
<p:column >
<f:facet name="header" >
<h:outputText value="Produto"/>
</f:facet>
<h:outputText value="#{item1.ipcNomeProduto}"/>
</p:column>
<p:column style="width: 25px;">
<f:facet name="header">
<h:outputText value="Und"/>
</f:facet>
<h:outputText value="#{item1.ipcUnProduto}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Qtd. Solicitada"/>
</f:facet>
<h:outputText value="#{item1.ipcQtdSolicitada}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Qtd. Informada"/>
</f:facet>
<h:inputText id="qtd" value="#{itensPropCotacoesBean.ipcQtdOfertada1}" valueChangeListener="#{itensPropCotacoesBean.SomarQtd(item1)}" >
<f:ajax execute="qtd" render="output" />
</h:inputText>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Vr. Unit"/>
</f:facet>
<h:inputText id="name" value="#{itensPropCotacoesBean.ipcValorOfertado1}" valueChangeListener="#{itensPropCotacoesBean.SomarVr(item1)}">
<f:ajax execute="name" render="output" />
</h:inputText>
</p:column>
</p:dataTable>
Nos metodos itensPropCotacoesBean.ipcValorOfertado1 e itensPropCotacoesBean.ipcQtdOfertada1 ja tentei de tudo
o mais proximo que cheguei foi quando digito os valores ele ja adicionaria na lista, porem nao salva os valores na lista (segue partes principais)
private Itenspropcotacoes current;
private List<Itenspropcotacoes> listaItensPropCotacoes = null;
public void SomarQtd(Itenspropcotacoes it) {
this.current = it;
}
public void SomarVr(Itenspropcotacoes it) {
this.current = it;
}
public void setIpcQtdOfertada1(double ipcQtdOfertada) {
this.ipcQtdOfertada1 = ipcQtdOfertada;
for (Itenspropcotacoes item : this.listaItensPropCotacoes) {
//itero a lista para achar o objeto informado
if (item.equals(current)) {
//pego a posicao do item na lista
int i = this.listaItensPropCotacoes.indexOf(item);
//pego objeto da lista naquela posicao e insiro a quantidade
this.listaItensPropCotacoes.get(i).setIpcQtdOfertada(ipcQtdOfertada);
}
}
}
public void setIpcValorOfertado1(double ipcValorOfertado) {
this.ipcValorOfertado1 = ipcValorOfertado;
for (Itenspropcotacoes item : this.listaItensPropCotacoes) {
if (item.equals(current)) {
//pego a posicao do item na lista
int i = this.listaItensPropCotacoes.indexOf(item);
//pego objeto da lista naquela posicao e insiro a quantidade
this.listaItensPropCotacoes.get(i).setIpcValorOfertado(ipcValorOfertado);
}
}
}
Resumindo, precisava alterar os valores dos objetos da lista pelos inputTexts da datatable
para no final ter uma lista com todos objetos com os valores e quantidades adicionados.
Qualquer duvida me fala que posto o restante do codigo, resumi porque achei mto extenso.
Abraços