[RESOLVIDO]Click DataTable1 e Carrega DataTable 2

14 respostas
E

Pessoal, Tenho um DataTable1 (Nota Fiscal), que quando eu clico em uma linha, irá preencher automaticamente o DataTable2(ItensNotaFiscal)
e Quando clico duas vezes no DataTable1, irá aparecer um modal.

Alguem pode me dar alguma dica ???

14 Respostas

guilherme_costa1

Está utilizando o que? JSF + Primefaces?

E

Isso JSF + Primefaces

T

Só pra sincronizar, você quer saber como fazer para a segunda dataTable popular de acordo com a primeira? ou como fazer aparecer uma dialog modal qualquer quando clicar na datatable1, ou aparecer uma dialog modal contendo a datatable2 nele?

E

Vamos la

1º Passo. (DataTable1)

vou ter um botao pesquisar, onde irá carregar o Cabeçalho da nota fiscal (ate aqui é tranquilo)

2º Passo
Ao Clicar em alguma nota irá carregar os itens no DataTable2

3º Passo
Se eu clicar duas vezes em algum item do Cabeçalho da nota fiscal ira aparecer um Modal

Nao sei se fui claro.

T

Vc pode usar o rowSelect do dataTable do primefaces, que vai conter um listener que faça a lista de itensNotaFiscal de acordo com a NotaFiscal que vc clicou, e também apontar o update para o id da datatable2;

Quanto ao abrir a dialog, recomendaria vc criar outra column com um botão (com ícone lupa mesmo) com a função de abrir a dialog para não misturar os eventos.

Era isso?

E

entao seria mais ou menos isso ??

<p:dataTable ...>

                <p:ajax event="rowSelect" update=":form:datatable2" actionListener = "listados itens  />

for isso mais uma coluna com uma lupa como falou acima.

Seria isso ?

T

Seria isso mesmo,

só lembrando de verificar as propriedades selection e rowKey, tipo…

<p:dataTable id="notas" var="nf" value="#{nfBean.listaDeNotas}" rowKey="#{nf.id}" selection="#{nfBean.notaSelecionada}" selectionMode="single">

o rowKey precisar ser o atributo que vc usa no equals e hashcode, que provavelmente é o id;

E

blz…cara a vou testar aqui …obrigado pela dica

E

Fiz assim, porem quando eu seleciono a linha , fala que nao esta encontrando o meu metodo, porem foi criado no meu Bean

<p:dataTable id="dtcadguia" value="#{analiseauditoriaMb.cadguiadt}" 
                         var="cadguia" 
                         emptyMessage="Nenhum registro encontrado."                            
                         rows="10"  
                         pageLinks="10"  
                         paginator="true"
                         rowsPerPageTemplate="5,10,15,20" 
                         rowKey="#{cadguia.codguia}"   
                         selection="#{analiseauditoriaMb.selectedcadguias}"                         
                         selectionMode="single"
                         >
                
                <p:ajax event="rowSelect" listener = "#{analiseauditoriaMb.listaitensselec}"  /> 
                    <f:facet name="header">  
                        Analises
                    </f:facet>  
                
                <p:column id="cod" 
                          headerText="Requis." 
                          filterMatchMode="contains"                                  
                          style="width:1%; font-size:10px;font-family:arial,Tahoma,Sans-serif;"                        >  
                    <h:outputText value="#{cadguia.codguia}" />  
                </p:column>  
***********************************Bean

@ManagedBean
@ViewScoped
public class AnaliseauditoriaMb extends ManagedBeanGenerico<Situbloqtipope, SitubloqtipopeServico> implements Serializable {

private Cadguia[] selectedcadguias;


    public void listaitensselec(ActionEvent ev) throws Exception {
        try {
            System.out.print("Erro ----");
        

        } catch (Exception ex) {
            System.out.print("Erro ----" + ex.getMessage());
        }

    }

Porem esta dando o erro abaixo :

INFO: java.lang.IllegalArgumentException: Cannot convert br.uniplan.modelo.planouni.Cadguia[ codguia=1187 ] of type class br.uniplan.modelo.planouni.Cadguia to class [Lbr.uniplan.modelo.planouni.Cadguia;

java.lang.IllegalArgumentException: Cannot convert br.uniplan.modelo.planouni.Cadguia[ codguia=1187 ] of type class br.uniplan.modelo.planouni.Cadguia to class [Lbr.uniplan.modelo.planouni.Cadguia;

at com.sun.el.lang.ELSupport.coerceToType(ELSupport.java:412)

at com.sun.el.parser.AstValue.setValue(AstValue.java:214)

at com.sun.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:291)

at org.jboss.weld.el.WeldValueExpression.setValue(WeldValueExpression.java:64)

at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:131)

at org.primefaces.component.datatable.DataTable.processUpdates(DataTable.java:475)

at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:510)

at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)

at org.primefaces.component.api.UIData.visitTree(UIData.java:635)

at javax.faces.component.UIComponent.visitTree(UIComponent.java:1601)

at javax.faces.component.UIForm.visitTree(UIForm.java:344)

at javax.faces.component.UIComponent.visitTree(UIComponent.java:1601)

at javax.faces.component.UIComponent.visitTree(UIComponent.java:1601)

at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:376)

at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:252)

at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:183)

at javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:1229)

at com.sun.faces.lifecycle.UpdateModelValuesPhase.execute(UpdateModelValuesPhase.java:78)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)

at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)

at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)

at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)

at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)

at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)

at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)

at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)

at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)

at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)

at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)

at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)

at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)

at com.sun.grizzly.ContextTask.run(ContextTask.java:71)

at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)

at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)

at java.lang.Thread.run(Thread.java:662)
AVISO: Method not found: [email removido](org.primefaces.event.SelectEvent)

javax.el.MethodNotFoundException: Method not found: [email removido](org.primefaces.event.SelectEvent)

at com.sun.el.util.ReflectionUtil.getMethod(ReflectionUtil.java:160)

at com.sun.el.parser.AstValue.invoke(AstValue.java:251)

at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)

at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39)

at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)

at org.primefaces.component.behavior.ajax.AjaxBehaviorListenerImpl.processAjaxBehavior(AjaxBehaviorListenerImpl.java:47)

at org.primefaces.event.SelectEvent.processListener(SelectEvent.java:40)

at javax.faces.component.behavior.BehaviorBase.broadcast(BehaviorBase.java:106)

at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:760)

at javax.faces.component.UIData.broadcast(UIData.java:1071)

at javax.faces.component.UIData.broadcast(UIData.java:1093)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)

at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)

at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)

at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)

at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)

at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)

at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)

at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)

at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)

at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)

at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)

at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)

at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)

at com.sun.grizzly.ContextTask.run(ContextTask.java:71)

at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)

at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)

at java.lang.Thread.run(Thread.java:662)

Listening for transport dt_socket at address: 9009

E

Resolvi o problema de nao achar o metodo era isso :

public void listaitensselec(SelectEvent event) throws Exception {

porem continua o erro :

INFO: java.lang.IllegalArgumentException: Cannot convert br.uniplan.modelo.planouni.Cadguia[ codguia=1188 ] of type class br.uniplan.modelo.planouni.Cadguia to class [Lbr.uniplan.modelo.planouni.Cadguia;
java.lang.IllegalArgumentException: Cannot convert br.uniplan.modelo.planouni.Cadguia[ codguia=1188 ] of type class br.uniplan.modelo.planouni.Cadguia to class [Lbr.uniplan.modelo.planouni.Cadguia;

E

Tirei esse linha do DataTable e resolveu o problema,

Minha duvida é . Precisa Realmente Desta linha do DataTable???

selection="#
{analiseauditoriaMb.selectedcadguias}"

T

evandro_araujo:
Tirei esse linha do DataTable e resolveu o problema,

Minha duvida é . Precisa Realmente Desta linha do DataTable???

selection="#
{analiseauditoriaMb.selectedcadguias}"

vc precisa identificar quem vc selecionou de alguma forma. esse selection é equivalente ao

<f:setPropertyActionListener value="#{cadguia}" target="#{analiseauditoriaMb.selectedcadguias}" />
T

E agora vi também este objeto selected não pode ser List ou array, a não ser que vc queira seleção múltipla;

Nesse caso precisa ser do tipo

private Cadguia selectedcadguia;

//não esquecer aqui os getters e setters
E

bingo , deu certo…

vlw abc.

Criado 23 de maio de 2013
Ultima resposta 23 de mai. de 2013
Respostas 14
Participantes 3