Criar novos componentes atraves de um botao

3 respostas
liviaguedes

Olá Galera GUJ,

Sei q parece meio bobo mas nao tenho nem ideia rs…
gostaria de montar um botao ou um link q adiciona um novo componente na tela

<h:panelGrid columns="3">
			<h:outputText value="Nome:" />
			<h:inputText value="" id="text" />
			<rich:suggestionbox id="suggestionBoxId" 
								for="text"
								suggestionAction="#{produtoMB.complemento}" 
								width="200"
								height="150" 
								var="result">

								<h:column>
							    <h:outputText value="#{result}" />
								</h:column>							
			</rich:suggestionbox>
			<h:commandButton value="+"/>			
		</h:panelGrid>

aii toda vez q clicar no + cria uma linha com o label um imput e o botao …
Se alguem puder me ajudar

3 Respostas

A
Oi livia, tudo bom? sou iniciante no java também, mais tenho uma solução que pode te servir muito bem ^^ use dhtml para isso, olha esse exemplo criando botões:
<html>
<head>
<title>AdicionandoBotões</title>
</head>
<body>

<script type="text/javascript">
<!--
  function criarBotao(){
    // funciona no IE e no Firefox
    var but = document.createElement("button");
    var texto = document.createTextNode("Clique Aqui!");
    but.appendChild(texto);
    document.body.appendChild(but);
  }
//-->
</script>

<a href="javascript:criarBotao()">Clique para criar um 
novo botão</a>

</body>
</html>

é só dar uma pesquisada pra verificar a sintaxe para a adição dos campos que você quer, e o estilo aplica com CSS mesmo

liviaguedes

Olá andre.froes,

Obrigada, vou verificar hj e agradeço… desde ja… :wink:

thimor

voce ja esta usando o richfaces entao fica facil usar o a4j. voce consegue fazer isso usando o a4j.

<h:panelGroup id="complemento" rendered="#{seubean.complemento}">
   <h:inputText value="#{seubean.campoComplemento}"/>
   <h:commandButton/>
</h:panelGroup>

Imagino que a estrutura que voce quer que apareca seja algo desse tipo.
Para fazer ela aparecer note que tem uma propriedade rendered que vai servir para mostrar ou esconder seu componente ela deve estar setada no seu bean e eh um campo boolean.
para fazer ele aparecer voce usa o a4j.

<a4j:commandButton ou commandLink action="#{seubean.mostraComplemento} reRender="complemento"/>

ao clicar no botao ou link o metodo mostraComplemento altera o valor do campo complemento para true e seu campo complemento aparece na tela. bem simples. o reRender é o id do compomente que voce quer q ao realizar a action seja atualizado novamente. caso seja de outra forma o que voce deseja fale q eu te explico

espero ter ajudado

Criado 18 de setembro de 2009
Ultima resposta 21 de set. de 2009
Respostas 3
Participantes 3