Como faço para pegar um valor do dialog (PrimeFaces) e jogar num inputText?

1 resposta
maiconkf

Boa noite.

Estou com um probleminha..
No meu sistema tem um botão onde a pessoa clica nele e abre um dialog do primefaces com uma tabela que tem os clientes que estão salvos no banco de dados..

Queria saber como faço pra quando a pessoa der duplo clique no cliente que ela quer, o inputText é preenchido com o nome e id do cliente!

Aí o código:

<p:row>
                                    <p:column style="font-weight: bold;">Cliente</p:column>
                                    <p:column><p:inputText value="#{orcamentoMNG.cliente}" size="5" >
                                            <f:ajax event="blur" render="cliente" listener="#{clienteMNG.buscar}" />

                                        </p:inputText>
                                        <p:commandButton id="basic" value="..." onclick="dlg1.show();" type="button" />  

                                        <p:dialog id="basicDialog" header="Clientes" widgetVar="dlg1">   
                                            <h:panelGrid id="teste" width="100%">

                                                <p:dataTable id="TableCliente" var="agrupa" value="#{clienteMNG.cliente}" widgetVar="tabelaCliente" 
                                                             emptyMessage="Pessoa/Cliente não encontrado" style="margin-top: 4px;"
                                                             paginator="true" rows="10"
                                                             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                                                             rowsPerPageTemplate="5,10,15">

                                                    <f:facet name="header">
                                                        <p:outputPanel>
                                                            <h:outputText value="Pesquisa geral: " />
                                                            <p:inputText id="globalFilter" onkeyup="tabelaCliente.filter()" style="width:150px" />
                                                        </p:outputPanel>
                                                    </f:facet>
                                                    <p:column id="id" filterBy="#{agrupa.id}" 
                                                              headerText="ID" footerText="ID"
                                                              filterMatchMode="contains" style="margin-top: 1px;">
                                                        <h:outputText value="#{agrupa.id}" />
                                                    </p:column>

                                                    <p:column id="nome" filterBy="#{agrupa.nome}" 
                                                              headerText="Nome" footerText="Nome"
                                                              filterMatchMode="contains" style="margin-top: 1px;">
                                                        <h:outputText value="#{agrupa.nome}" />
                                                    </p:column>
                                                </p:dataTable>
                                            </h:panelGrid>
                                        </p:dialog>  
                                        <p:inputText id="cliente" value="#{clienteMNG.nome}" label="Consumo" size="60" disabled="true" style="text-transform:uppercase; font-weight: bold"/></p:column>
                                </p:row>

E outra... porque quando eu mudo o id pra "modal" a tela fica toda cinza e trava sem aparecer nada no dialog??

1 Resposta

felipehts

Como fez no “Controller” ? Para facilitar “pegar” o Cliente, eu costumo adicionar uma coluna na tabela com um “commandbutton”, tipo:

<p:column headerText="Adicionar" style=" min-width: 80px; max-width:90px">
                    <p:commandButton actionListener="clenteController.adicionarCliente" oncomplete="dlg1.hide();" icon="ui-icon-plusthick" />
                </p:column>

Sendo assim eu sei exatamente em qual linha foi clicado, mas existe outras formas também:
http://www.primefaces.org/showcase-labs/ui/datatableRowSelectionSingle.jsf

Criado 17 de agosto de 2012
Ultima resposta 17 de ago. de 2012
Respostas 1
Participantes 2