DataTable alteração

4 respostas
E

Boa tarde, tenho um sistema onde os usuarios fazem o preenchimento de valores dentro do proprio datatable, ou seja, tenho um dataTable que possui varios inputs (<h:input), isso funciona normalmente, só que por linha, ou seja, para alterar uma informação apenas se for linha a linha, alguem conhece algo que posso fazer, por exemplo, ter um botão que pressionado alteraria todas as linhas daquele datatable, conforme os valores preenchidos.
Se não fui claro, posso explicar melhor.

4 Respostas

yorgan

Posta o código do jsp e do bean. Ajuda a entender bem o que você quer.

[]´s

Daniel

E

Então, hoje eu consigo recuperar a linha do datatble que quero alterar, agora quero pegar todas as linhas deste datatable e altera-las.

Tem ideia como eu faria isso?
eu utilizo isso aqui para pegar a linha da coleção a alterar:

Object obj = FacesContext.getCurrentInstance().getExternalContext
().getRequestMap().get(“tudo”);

HashMap hmp = new HashMap();

hmp=(HashMap) obj;

janeiro= hmp.get(“janeiro”).toString();

Ou seja, assim só consigo pegar uma linha, o que eu usaria para pegar
a coleção toda?
Alguem sabe?

yorgan

Por isso estou pedindo o código, principalmente do Bean e da classe do objeto que usa para popular a DataTable. Posta ai que fica mais facil para ajudar.

[]´s

Daniel

E

Esta é a pagina JSF

<t:dataTable 
id="DtReferencias"
styleClass="tabela"
rowClasses="list-row-even,list-row-odd"
border="3"
bgcolor="#F0F8FF"
value="#{manager.todasReferencias}" 
var="tudo">

<t:column width="90px">
<h:panelGrid columns="1">   
<h:outputText rendered="#{!manager.compoem}" styleClass="nomeDeCampos" value="#{tudo.t_cpcl_o}" />  
<h:commandLink rendered="#{manager.compoem}" action="#{manager.refEspecificaRepresentante}">
<h:outputText styleClass="nomeDeCampos" value="#{tudo.t_cpcl_o}" />   
<f:param name="ref" value="#{tudo.t_cpcl_o}"/>
</h:commandLink>

<h:outputLink target="_blanck" value="\metas\representantes\DtReferenciasHist.jsf">
<h:outputText value=" Histórico" />
<f:param name="paramRef" value="#{tudo.t_cpcl_o}"/>
</h:outputLink>

<h:outputText styleClass="textoDeCampos" value=" #{tudo.t_dsca_o} " />

<h:outputText styleClass="msgAlteracao" value="#{tudo.t_obse_o} #{tudo.t_dtal_o}" />

<h:commandButton styleClass="botao" value="Alterar" onclick="if (confirm('Tem certeza que deseja alterar? Esta ação vai alterar a referencia :  #{tudo.t_cpcl_o}')) {return true }; return false;" action="#{manager.getAlteraRefUgb}"/>

<h:outputText value="#{manager.msg}" />

</h:panelGrid>  
</t:column>

<t:column width="70px">
<h:panelGrid columns="1">
<h:outputText styleClass="porc" value="Prev(Q)"/>
<h:outputText styleClass="msgAlteracao" value="Var.%"/>
<h:outputText styleClass="valor" value="Fatu(Q)"/>
<h:outputText styleClass="porc" value="Entrada(Q)"/>
<h:outputText styleClass="valor" value="Cancel(Q)"/>
</h:panelGrid>
</t:column>



<t:column width="70px">

<h:panelGrid columns="1">
<h:inputText readonly="#{manager.vjan}" styleClass="porc" value="#{tudo.janeiroq}" size="4" />
<h:outputText styleClass="msgAlteracao" value="#{tudo.janeiropor}%" />
<h:outputText styleClass="porc" value="#{tudo.janeiroreal}" /> 
<h:outputText styleClass="porc" value="#{tudo.janeiropd} " />    
<h:outputText styleClass="porc" value="#{tudo.janeiroqc} " /> 
</h:panelGrid>

</t:column>

<t:column width="70px">

<h:panelGrid columns="1">

<h:inputText  readonly="#{manager.vfev}" styleClass="porc" value="#{tudo.fevereiroq}" size="4"/>
<h:outputText styleClass="msgAlteracao" value="#{tudo.fevereiropor}%" />


<h:outputText styleClass="porc" value="#{tudo.fevereiroreal} " />

<h:outputText styleClass="porc" value="#{tudo.fevereiropd} " />

<h:outputText styleClass="porc" value="#{tudo.fevereiroqc} " />

</h:panelGrid>
</t:column>

<t:column width="70px">

<h:panelGrid columns="1">

<h:inputText  readonly="#{manager.vmar}" styleClass="porc" value="#{tudo.marcoq}" size="4" />
<h:outputText styleClass="msgAlteracao" value="#{tudo.marcopor}%" />


<h:outputText styleClass="porc" value="#{tudo.marcoreal} " />

<h:outputText styleClass="porc" value="#{tudo.marcopd} " />

<h:outputText styleClass="porc" value="#{tudo.marcoqc} " />

</h:panelGrid>
</t:column>

<t:column width="70px">

<h:panelGrid columns="1">

<h:inputText readonly="#{manager.vabr}" styleClass="porc" value="#{tudo.abrilq}" size="4"/>
<h:outputText styleClass="msgAlteracao" value="#{tudo.abrilpor}%" />


<h:outputText styleClass="porc" value="#{tudo.abrilreal} " />

<h:outputText styleClass="porc" value="#{tudo.abrilpd} " />

<h:outputText styleClass="porc" value="#{tudo.abrilqc} " />

</h:panelGrid>
</t:column>

<t:column width="70px">

<h:panelGrid columns="1">

<h:inputText readonly="#{manager.vmai}" styleClass="porc" value="#{tudo.maioq}" size="4"/>
<h:outputText styleClass="msgAlteracao" value="#{tudo.maiopor}%" />


<h:outputText styleClass="porc" value="#{tudo.maioreal} " />

<h:outputText styleClass="porc" value="#{tudo.maiopd} " />

<h:outputText styleClass="porc" value="#{tudo.maioqc} " />

</h:panelGrid>
</t:column>

<t:column width="70px">

<h:panelGrid columns="1">

<h:inputText readonly="#{manager.vjun}" styleClass="porc" value="#{tudo.junhoq}" size="4"/>
<h:outputText styleClass="msgAlteracao" value="#{tudo.junhopor}%" />


<h:outputText styleClass="porc" value="#{tudo.junhoreal} " />

<h:outputText styleClass="porc" value="#{tudo.junhopd} " />

<h:outputText styleClass="porc" value="#{tudo.junhoqc} " />

</h:panelGrid>
</t:column>

<t:column width="70px">

<h:panelGrid columns="1">

<h:inputText readonly="#{manager.vjul}" styleClass="porc" value="#{tudo.julhoq}" size="4"/>
<h:outputText styleClass="msgAlteracao" value="#{tudo.julhopor}%" />


<h:outputText styleClass="porc" value="#{tudo.julhoreal} " />

<h:outputText styleClass="porc" value="#{tudo.julhopd} " />

<h:outputText styleClass="porc" value="#{tudo.julhoqc} " />

</h:panelGrid>
</t:column>

<t:column width="70px">

<h:panelGrid columns="1">

<h:inputText readonly="#{manager.vago}" styleClass="porc" value="#{tudo.agostoq}" size="4"/>
<h:outputText styleClass="msgAlteracao" value="#{tudo.agostopor}%" />


<h:outputText styleClass="porc" value="#{tudo.agostoreal} " />
<h:outputText styleClass="porc" value="#{tudo.agostopd} " />
<h:outputText styleClass="porc" value="#{tudo.agostoqc} " />
</h:panelGrid>
</t:column>

<t:column width="70px">

<h:panelGrid columns="1">

<h:inputText readonly="#{manager.vset}" styleClass="porc" value="#{tudo.setembroq}" size="4"/>
<h:outputText styleClass="msgAlteracao" value="#{tudo.setembropor}%" />


<h:outputText styleClass="porc" value="#{tudo.setembroreal} " />

<h:outputText styleClass="porc" value="#{tudo.setembropd} " />

<h:outputText styleClass="porc" value="#{tudo.setembroqc} " />

</h:panelGrid>
</t:column>

<t:column width="70px">

<h:panelGrid columns="1">

<h:inputText readonly="#{manager.vout}" styleClass="porc" value="#{tudo.outubroq}" size="4"/>
<h:outputText styleClass="msgAlteracao" value="#{tudo.outubropor}%" />


<h:outputText styleClass="porc" value="#{tudo.outubroreal} " />

<h:outputText styleClass="porc" value="#{tudo.outubropd} " />

<h:outputText styleClass="porc" value="#{tudo.outubroqc} " />

</h:panelGrid>
</t:column>

<t:column width="70px">

<h:panelGrid columns="1">

<h:inputText readonly="#{manager.vnov}" styleClass="porc" value="#{tudo.novembroq}" size="4"/>
<h:outputText styleClass="msgAlteracao" value="#{tudo.novembropor}%" />


<h:outputText styleClass="porc" value="#{tudo.novembroreal} " />

<h:outputText styleClass="porc" value="#{tudo.novembropd} " />

<h:outputText styleClass="porc" value="#{tudo.novembroqc} " />

</h:panelGrid>
</t:column>

<t:column width="70px">

<h:panelGrid columns="1">

<h:inputText readonly="#{manager.vdez}" styleClass="porc" value="#{tudo.dezembroq}" size="4"/>
<h:outputText styleClass="msgAlteracao" value="#{tudo.dezembropor}%" />


<h:outputText styleClass="porc" value="#{tudo.dezembroreal} " />

<h:outputText styleClass="porc" value="#{tudo.dezembropd} " />

<h:outputText styleClass="porc" value="#{tudo.dezembroqc} " />

</h:panelGrid>
</t:column>

<t:column width="70px">

<h:panelGrid columns="1">
<h:outputText styleClass="valor" value="#{tudo.totalqtde}" />
<h:outputText styleClass="msgAlteracao" value="#{tudo.pqtot}%" />
<h:outputText styleClass="valor" value="#{tudo.totalreal}" />
<h:outputText styleClass="valor" value="#{tudo.totalpend} " />
<h:outputText styleClass="valor" value="#{tudo.totalcanc} " />
</h:panelGrid>
</t:column>

</t:dataTable>
</t:div>

Ou seja, neste codigo da pagina acima, eu tenho informacoes de um produto e 12 inputs de informação que são preenchidos dinamicamente pelo bean e como temos inputs nesta pagina jsf, os usuarios podem alterar as informações, o codigo do botão de alteração é esse aqui:

public String getAlteraRefUgb(){
	Referencia ref = new Referencia();
	 	
 	Object obj = FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("tudo");   
	
	HashMap hmp = new HashMap();   
	
	hmp=(HashMap) obj;
		
	ref.setT_qtde_o_1(t_qtde_o_1= hmp.get("janeiroq").toString());
	ref.setT_qtde_o_2(t_qtde_o_2= hmp.get("fevereiroq").toString());
	ref.setT_qtde_o_3(t_qtde_o_3= hmp.get("marcoq").toString());
	ref.setT_qtde_o_4(t_qtde_o_4= hmp.get("abrilq").toString());
	ref.setT_qtde_o_5(t_qtde_o_5= hmp.get("maioq").toString());
	ref.setT_qtde_o_6(t_qtde_o_6= hmp.get("junhoq").toString());
	ref.setT_qtde_o_7(t_qtde_o_7= hmp.get("julhoq").toString());
	ref.setT_qtde_o_8(t_qtde_o_8= hmp.get("agostoq").toString());
	ref.setT_qtde_o_9(t_qtde_o_9= hmp.get("setembroq").toString());
	ref.setT_qtde_o_10(t_qtde_o_10= hmp.get("outubroq").toString());
	ref.setT_qtde_o_11(t_qtde_o_11= hmp.get("novembroq").toString());
	ref.setT_qtde_o_12(t_qtde_o_12= hmp.get("dezembroq").toString());
	
	ref.setT_cpcl_o(this.t_cpcl_o=hmp.get("t_cpcl_o").toString());
	ref.setT_year_o(this.t_year_o=hmp.get("t_year_o").toString());
	ref.setT_cena_o(this.t_cena_o=hmp.get("t_cena_o").toString());
	ref.setT_ugbs_o(this.t_ugbs_o=hmp.get("t_ugbs_o").toString());
	ref.setT_ctyp_o(this.t_ctyp_o=hmp.get("t_ctyp_o").toString());
	
	if (!t_dimx_o.equals("todas")){
		ref.setT_dimx_o(this.t_dimx_o=hmp.get("t_dimx_o").toString());
		ref.setT_crep_o(this.t_crep_o=hmp.get("t_crep_o").toString());			
	}else{
		ref.setT_dimx_o(this.t_dimx_o);
	}
		
			String retorno=ref.getAlteraRefUgb();
			
			this.msg=ref.getMsgErroT();
			
	return "retorno";
	}

Ou seja, eu consigo recuperar no bean a informação digitada em um input de uma linha, gostaria de fazer isso para todas as linhas.
Será que é possivel?

Criado 24 de março de 2009
Ultima resposta 25 de mar. de 2009
Respostas 4
Participantes 2