Setar um objeto recém salvo num combobox, de modo que já apareça selecionado

4 respostas
P

Olá galera,

bom… acho que o título do tópico já explica o que estou tentando fazer…
eu tenho um selectOneMenu, carregado com uma lista de grupos. Tenho um botão ao qual, abre um dialog, para cadastrar um novo grupo… Eu cadastro, o dialog fecha, e o novo grupo se encontra dentro do combobox já, tudo funcionando perfeitamente.

Mas o que estou tentando fazer agora é que ao cadastrar um novo grupo, ele mande para o combobox, esse novo grupo já selecionado… para que não precise procurar na lista pelo grupo recém criado.
Alguém tem alguma sugestão? tentei de algumas maneiras mas nao deu muito certo =/

//COMBOBOX com a lista populada com os grupos
<h:outputLabel value="Grupo: * " />
<h:selectOneMenu id="cbgrupo" style="text-align: left; width: 195px" value="#{ctrlManterProduto.idGrupo}">
	<f:selectItem itemLabel="-- Selecione um Grupo --" noSelectionOption="true"/>
	<f:selectItems value="#{ctrlManterGrupo.lista}" var="grupo" itemValue="#{grupo.cod_grupo}" itemLabel="#{grupo.nome}"/>
	<f:ajax event="change" render="cbgrupo" />
</h:selectOneMenu>

//.........
//tentei usar f:setPropertyActionListeners no método para salva o grupo, mas não deu certo..
<h:outputLabel value="Nome: * " />
<p:inputText id="gruponome" value="#{ctrlManterGrupo.selecionado.nome}" style="width: 230px" />
								
<p:commandButton action="#{ctrlManterGrupo.salvarGrupo()}" update=":msg :form:cbgrupo" value="Cadastrar" title="Cadastrar" icon="ui-icon-check" oncomplete="if(args.sucesso == true) { novo_grupo.hide(); }" >
	<f:setPropertyActionListener target="#{ctrlManterProduto.idGrupo}" value="#{ctrlManterGrupo.selecionado.cod_grupo}" />
</p:commandButton>

Obrigado!

4 Respostas

E

Tente setar o idGrupo com o valor do objeto gravado.

P

pois eh… mas foi isso que eu tentei fazer heheh

teria uma sugestão de como fazer?

Obrigado!! :smiley:

C

Quando carregar a página, coloque o valor em um input hidden.. e então use jquery para pegar o valor da input, e colocar no select/combobox

<script>
window.onload = function() {
	  
	 	 $("#ID_DO_SELECT/COMBOBOX").val($("#ID_CAMPO_INPUT_HIDDEN").val());

  
};
</script>

Lembrando que para fazer isto você deve ter o jquery importado no seu projeto.

Abraço!

E

pcsantana:
pois eh… mas foi isso que eu tentei fazer heheh

teria uma sugestão de como fazer?

Obrigado!! :D

Mas faz isso no teu salvarGrupo() ? Cole ele aqui

Criado 3 de novembro de 2012
Ultima resposta 8 de nov. de 2012
Respostas 4
Participantes 3