Bom dia pessoal,
tenho uma necessidade aqui, e não consegui atender ainda por falta de conhecimento. Eu tenho um h:inputText que recebe um valor numérico. Porém eu preciso que, ao sair desse campo (um lost focus por exemplo) sejam criados X inputText. Esse X é o valor fornecido no primeiro inputText.
Ex:
Digite o Valor: 3 (ao sair do campo, ou coisa parecida)
<h:inputText 1 >
<h:inputText 2 >
<h:inputText 3 >
Explique um pouco melhor a regra. Se for muito complexo, você pode tentar criar um componente. Se for um pouco mais simples, você pode usar o a4j:repeat do Ajax4JSF e Richfaces.
[]'s
S
surfzera
Dae, cara eu faço isso com javascript mais ou menos assim ve se ajuda.
Você deve fazer um loop antes pra escrever quantas linhas quiser… outra coisa nessa situacao eu fiz pra ser incluida valores em uma tabela, mais você pode usar o exemplo pra qualquer coisa.
L
leonardobhbr
Guitar_Men:
Bom dia pessoal,
tenho uma necessidade aqui, e não consegui atender ainda por falta de conhecimento. Eu tenho um h:inputText que recebe um valor numérico. Porém eu preciso que, ao sair desse campo (um lost focus por exemplo) sejam criados X inputText. Esse X é o valor fornecido no primeiro inputText.
Ex:
Digite o Valor: 3 (ao sair do campo, ou coisa parecida)
<h:inputText 1 >
<h:inputText 2 >
<h:inputText 3 >
o meu caso preciso de algo mais complexo que seria a criação de CRUD’s dinamicamente essa solução não é viavel para mim.
Atté onde eu vi ou terei que criar via BackingBean binding ou Criar um UIComponent mesmo, se voce chegar em alguma conclusão posta ai
I
ibira
Aqui na empresa em que trabalho, foi criado uma estrutura que faz os componentes em JSF dinamicamente.
Dependendo da necessidade (que acho que é o seu caso) é interessante, criamos os componentes como objetos mesmo (new HtmlInputtext() - da biblioteca do JSF) e adicionamos na árvore de componentes do JSF, dentro de um Panel por exemplo.
Já respondi outra pessoa aqui no forum com esse mesmo problema…
G
Guitar_Men
Pessoal, eu avaliei todas as dicas e acabei indo pelo seguinte caminho:
Coloquei um breakpoint no meu bean e aparentemente o valor quantidade está sendo setado e chamado. Porém esse forach não esta iterando sobre o valor. Alguém tem alguma idéia do que possa ser ?
I
ibira
Dessa forma provavelmente você não vai saber qual caixa de texto possui cada valor… Você vai precisar de id para o componente…
A
Alexandre_Saudate
Guitar_Men:
Pessoal, eu avaliei todas as dicas e acabei indo pelo seguinte caminho:
Coloquei um breakpoint no meu bean e aparentemente o valor quantidade está sendo setado e chamado. Porém esse forach não esta iterando sobre o valor. Alguém tem alguma idéia do que possa ser ?
Se você usa o a4j, é mais vantagem usar a4j:repeat para isso.
[]'s
G
Guitar_Men
asaudate:
Guitar_Men:
Pessoal, eu avaliei todas as dicas e acabei indo pelo seguinte caminho:
Coloquei um breakpoint no meu bean e aparentemente o valor quantidade está sendo setado e chamado. Porém esse forach não esta iterando sobre o valor. Alguém tem alguma idéia do que possa ser ?
Se você usa o a4j, é mais vantagem usar a4j:repeat para isso.
[]'s
Interessante, nunca trabalhei com isso, você teria algum exemplo para me passar ?
A
Alexandre_Saudate
Guitar_Men:
asaudate:
Guitar_Men:
Pessoal, eu avaliei todas as dicas e acabei indo pelo seguinte caminho:
Coloquei um breakpoint no meu bean e aparentemente o valor quantidade está sendo setado e chamado. Porém esse forach não esta iterando sobre o valor. Alguém tem alguma idéia do que possa ser ?
Se você usa o a4j, é mais vantagem usar a4j:repeat para isso.
[]'s
Interessante, nunca trabalhei com isso, você teria algum exemplo para me passar ?
Coloquei um breakpoint no meu bean e aparentemente o valor quantidade está sendo setado e chamado. Porém esse forach não esta iterando sobre o valor. Alguém tem alguma idéia do que possa ser ?
Se você usa o a4j, é mais vantagem usar a4j:repeat para isso.
[]'s
Interessante, nunca trabalhei com isso, você teria algum exemplo para me passar ?
Mesmo com o a4j:repeat não consegui. Pelos breakpoints que eu coloquei o valor esta sendo atribuido ao bean, porém na hora do repeat fazer a iteração o bean esta vaziu… Teria alguma outra forma de fazer ?? Até poderia ser um botão + do lado do meu input que quando eu clicasse ele adicionaria um campo de texto a mais…
A
Alexandre_Saudate
Está dentro de um outputPanel?
G
Guitar_Men
Esta dentro de um PanelGroup que tem outros campos…
A
Alexandre_Saudate
Humn… não sei te dizer com certeza se influencia, mas tente colocar tudo (inclusive o panel group) dentro de um outputPanel.
[]'s
G
Guitar_Men
Nada feito… Aquela segunda opção que eu dei de colocar um botão que ao ser clicado cria um novo componente é mas fácil de ser implementada ?
A
Alexandre_Saudate
Teoricamente, sim. Eu fiz, uma vez, uma tela inteira (bem complexa, por sinal) baseado nisso, num botão enviando um evento e recarregando via Ajax. Pode ser que seja mais fácil, sim.
[]'s
G
Guitar_Men
Teoricamente, sim. Eu fiz, uma vez, uma tela inteira (bem complexa, por sinal) baseado nisso, num botão enviando um evento e recarregando via Ajax. Pode ser que seja mais fácil, sim.
[]'s
Humm, pode me passar algum material sobre isso ??
A
Alexandre_Saudate
Teoricamente, sim. Eu fiz, uma vez, uma tela inteira (bem complexa, por sinal) baseado nisso, num botão enviando um evento e recarregando via Ajax. Pode ser que seja mais fácil, sim.
[]'s
Humm, pode me passar algum material sobre isso ??
Não tenho mais… mas lembro que fiz tudo com richfaces e ajax4jsf, usando a:repeat e a:commandbutton (ou commandlink, não lembro).
Dá uma olhada no livedemo (aquele link que te passei), que a documentação que tem lá sobre os componentes é bem completa, deve ajudar bem.
[]'s
G
Guitar_Men
Pessoal,
Consegui criar a rotina mas ainda estou com um problema. Tenho um h:inputText com um a4j:support no onkeyup que da um reRender numa área específica do meu form e chama uma action:
para criar os campos “dinâmicamente”. Tudo funciona as mil maravilhas, mas quando dou o submit do form, esses valores não são setados…
Alguém consegue me dar uma “luz” ??
R
raf4ever
Fiz um exemplozinho aqui rápido,ve se ajuda:
Tela: