Problemas com RichFaces

1 resposta
vcsmetallica

Salve galera do forum,

O problema que estou tendo consegui achar varias soluções aqui no forum, so que ainda nao funcinou.
O problema é o seguinte: tenho uma lista com os meus dados e o botão para edição. Não estou conseguindo passar a linha selecionada para o meu controle.
Abaixo os fontes:

meu xhtml

<a4j:region>
                                <rich:dataTable value="#{controleServico.listaDeServicos}" var="servico" rows="10" id="tabelaDeServico" rowKeyVar="row" align="center">
                                    <rich:column>
                                        <f:facet name="header">
                                            <h:outputText value="Número do serviço" />
                                        </f:facet>
                                        <h:outputText value="#{servico.numeroDoServico}" id="numeroDoServico" />
                                    </rich:column>
                                    <rich:column>
                                        <f:facet name="header">
                                            <h:outputText value="Nome da Revenda" />
                                        </f:facet>
                                        <h:outputText value="#{servico.fornecedor.nome}" id="fornecedorNome" />
                                    </rich:column>
                                    <rich:column>
                                        <f:facet name="header">
                                            <h:outputText value="Situação" />
                                        </f:facet>
                                        <h:outputText value="#{servico.situacao.nome}" id="situacao" />
                                    </rich:column>
                                    <rich:column>
                                        <f:facet name="header">
                                            <h:outputText value="Data de criação" />
                                        </f:facet>
                                        <h:outputText value="#{servico.dataDeCriacao}" id="dataDeCriacao" >
                                            <f:convertDateTime pattern="dd/MM/yyyy HH:mm" locale="pt,BR" timeZone="America/Sao_Paulo" />
                                        </h:outputText>
                                    </rich:column>
                                    <rich:column>
                                        <f:facet name="header">
                                            Ação
                                        </f:facet>
                                        <a4j:commandLink ajaxSingle="true" id="editlink" 
                                                         oncomplete="#{rich:component('editPanel')}.show()">
                                            <h:graphicImage value="#{botoes.servicoEditar}" style="border:0" height="15" width="15"/>

                                          <f:setPropertyActionListener value="#{servico}" target="#{controleServico.servicoSelecionado}" />

                                                                                                                 
                                        </a4j:commandLink>
                                        <rich:toolTip for="editlink" value="Detalhar serviço" />
                                    </rich:column>
                                    <f:facet name="footer">
                                        <rich:datascroller renderIfSinglePage="false" maxPages="5" />
                                    </f:facet>
                                </rich:dataTable>
                            </a4j:region>

meu controle

//um tanto de codigo
private Servico servicoSelecionado;
// get e set

Li em algums forums que devo usar ajaxKeys e rowKeyVar, so que nao estou sabendo usar esses dois atributos.

Alguma ideia, o codigo esta errado? nao sei mais o que fazer!

Att

vcsmetallica

1 Resposta

Jacomete

eu tiraria a rich:datatable do a4j:region e colocaria dentro do h:form

e mudaria a forma de pegar o serviço disso que vxc fez:

<a4j:commandLink ajaxSingle="true" id="editlink"   
   oncomplete="#{rich:component('editPanel')}.show()">  
   <h:graphicImage value="#{botoes.servicoEditar}" style="border:0" height="15" width="15"/>  
   <f:setPropertyActionListener value="#{servico}" target="#{controleServico.servicoSelecionado}" />  
  </a4j:commandLink>

essa eh a forma q eu uso

<h:form id="formListPedidoVendedor">

  <rich:dataTable id="pedidoList" rows="30"
    rendered="#{not empty pedidoController.pedidoList}"
    value="#{pedidoController.pedidoList}" var="pedido">

	<f:facet name="header">
	  <h:outputText value="Listagem de Pedidos Vendedor" />
	</f:facet>

	<rich:column sortBy="#{pedido.cdPedidoVendedor}">
	  <f:facet name="header">
	     <h:outputText value="Cd.Pedido.V" styleClass="headerText" />
	  </f:facet>
	  <h:outputText value="#{pedido.cdPedidoVendedor}" />
	</rich:column>

	<rich:column sortBy="#{pedido.cliente.cdGrupoEmitente}">
	  <f:facet name="header">
	    <h:outputText value="Cd.Grupo" styleClass="headerText" />
	  </f:facet>
	  <h:outputText value="#{pedido.cliente.cdGrupoEmitente}" />
	</rich:column>

	<rich:column headerClass="table-opcoes"
	  styleClass="celula_opcoes opcoes-edita">
	  <f:facet name="header">
	    <h:outputText value="Editar" styleClass="headerText" />
	  </f:facet>
	  <h:commandLink actionListener="#{pedidoController.editar}" action="pedido" id="editarlink" value="Editar" rendered="#{pedido.usuarioPodeEditar}">
	    <f:attribute name="pedido" value="#{pedido}" />
	  </h:commandLink>
	</rich:column>

Metodo editar do pedidoController

public void editar(ActionEvent e) {
    PedidoVenda pedidoVenda = (PedidoVenda) e.getComponent().getAttributes().get("pedido");

   //aqui faço o q quiser com o pedido selecionado na lista
  }
Criado 10 de março de 2011
Ultima resposta 10 de mar. de 2011
Respostas 1
Participantes 2