Render component after clicking button

Asked

Viewed 786 times

0

I have a Yes/No button.I would like to have an element rendered below by clicking Yes. As follows in the example of my page:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <title>Cadastro</title>
</h:head>
<h:body>
    <h:form id="cadastrohabilidades">
        <p:panel>
            <p:messages />
            <h:panelGrid columns="3">
                <h:outputLabel value="Nome: " rendered="true" />
                <p:inputText id="nome" value="#{habilidademb.habilidade.nome}" size="20" />
                <p:message for="nome" />
                <h:outputLabel value="Descrição: " rendered="true" />
                <p:inputTextarea id="descricao" value="#{habilidademb.habilidade.descricao}" rows="6" cols="20" />
                <p:message for="descricao" />
                <h:outputLabel value="Possui efeito secundário? : " rendered="true" />
                <p:selectBooleanButton id="efeito" value="#{habilidademb.habilidadeHidden}" onLabel="Sim" offLabel="Não" style="width:60px" />
                <p:message for="efeito" />
                <h:outputLabel value="Efeito Secundário: " rendered="#{habilidademb.habilidadeHidden eq true}" />
                <p:inputTextarea id="secundario" value="#{habilidademb.habilidade.efeitoSecundario}" rows="6" cols="20" rendered="#{habilidademb.habilidadeHidden == true}" />
                <p:message for="secundario" />
            </h:panelGrid>
        </p:panel>
    </h:form>
</h:body>
</html>

As you can see, I put 2 components == true:

<h:outputLabel value="Efeito Secundário: " rendered="#{habilidademb.habilidadeHidden eq true}" />
                <p:inputTextarea id="secundario" value="#{habilidademb.habilidade.efeitoSecundario}" rows="6" cols="20" rendered="#{habilidademb.habilidadeHidden == true}" />

But it doesn’t work, someone knows how to do it?

1 answer

1


Do it like this.

<h:form>
            <h:outputLabel value="Possui efeito secundário? : " rendered="true" />
            <p:selectBooleanButton id="efeito" value="#{habilidademb.habilidadeHidden}" onLabel="Sim" offLabel="Não" style="width:60px" >
                <p:ajax event="change" update="pnlEfeito" />
            </p:selectBooleanButton> 


            <h:panelGroup id="pnlEfeito">
                <p:message for="efeito" />
                <h:outputLabel value="Efeito Secundário: " rendered="#{habilidademb.habilidadeHidden eq true}" />
                <p:inputTextarea id="secundario" value="#{habilidademb.habilidade.efeitoSecundario}" rows="6" cols="20" rendered="#{habilidademb.habilidadeHidden == true}" />
            </h:panelGroup>

</h:form>
  • Thanks boy.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.