Bom dia a todos,
Preciso muito de um help, e para isso tentarei descrever detalhadamente a necessidade.
Tenho uma tela de cadastro, a qual possui diversos campos, alguns desses serão representados por ‘h:selectOneMenu’, esses serão carregados com base numa tabela do banco de dados, bom, até aqui nada de diferente!
No intuito de agilizar, eu gostaria de fazer assim:
"Quando o usuário estiver nessa tela preenchendo os dados, e notar que nesse ‘h:selectOneMenu’ não tem a informação desejada, ao invés de ter que sair dessa tela, e ter que ir na outra apenas para cadastrar tal informação, eu quero colocar um ‘commandbutton’ ao lado desses ‘h:selectOneMenu’ com a finalidade de cadastrar essa informação, tipo exibir uma tela modal e após a conclusão, fechar essa tela e atualizar os dados do ‘h:selectOneMenu’ "
PS: No momento estou fazendo tudo apenas com JSF2, mas no projeto há as bibliotecas do primefaces.
Desde já agradeço.
Bom dia.
No primefaces o componente se chama dialog.
No exemplo abaixo temos um dialog com o widgetVar (que é usado para chamá-lo) com nome “cadastroDlg”. Para abri-lo basta você usar onclick=“cadastroDlg.show()”.
Esse exemplo abaixo é parte de uma página do meu estágio supervisionado do final do ano passado. Vê se funciona no teu caso:
<h:form id="formNovoModulo">
<p:panel id="panelNovoModulo">
<h:selectOneMenu value="#{novoModuloBean.idCurso}" style="margin-right: 20px" id="selectCurso">
<f:selectItems value="#{novoModuloBean.cursos}"
var="item" itemLabel="#{item.nome}" itemValue="#{item.idCurso}"/>
</h:selectOneMenu>
<p:commandButton image="imagemAdd" action="#{novoModuloBean.novoCurso}" onclick="cadastroDlg.show()" update="formCadastro"/>
</panel>
</h:form>
<p:dialog widgetVar="cadastroDlg"
header="Cadastro de Curso">
<h:form id="formCadastro" style="font-size: 12px;">
<h:panelGrid columns="2">
<h:outputText value="Nome:"/>
<h:inputText id="nome" value="#{novoModuloBean.curso.nome}"/>
<h:outputText value="Descrição: "/>
<h:inputTextarea id="descricao" value="#{novoModuloBean.curso.descricao}"/>
<h:outputText value=""/>
<p:commandButton value="Salvar" image="imagemSalvar" oncomplete="cadastroDlg.hide()"
action="#{novoModuloBean.salvarCurso}"
update="formNovoModulo, formNovoModulo:panelNovoModulo, formNovoModulo:selectCurso"
ajax="false"></p:commandButton>
</h:panelGrid>
</h:form>
</p:dialog>
Bom dia rafaelvascon,
Estou seguindo sua idéia, e é exatamente isso que preciso.
Sem querer abusar muito, seria possível postar o código do managedbean novoModuloBean
:idea: