Tenho um p:commandButton no qual chama um dialog mostrando os dados de um dataTable que foi selecionado.
Quando realizo o update, todos os inputs aparecem normalmente, porém o selectonemenu não traz registro algum.
p:commandButton
<p:commandButton value="Alterar"
							onclick="PF('dlgDetalhesUsuario').show()"
							update=":frmDetalhesUsuario" />
p:dialog
<p:dialog widgetVar="dlgDetalhesUsuario" id="dlgDetalhesUsuario"
					modal="true" header="Dados cadastrais - usuário" resizable="false"
					width="80%">
					<h:form id="frmDetalhesUsuario">
						<p:growl id="growl01" showDetail="true" />
						<p:panel id="pnDetalhesUsuario">
							<p:panelGrid columns="2" id="pgDetalhesUsuario"
								style="border:0px !important; background:none;"
								styleClass="ui-panelgrid-blank">
								<p:column>
									<h:outputLabel value="Código" />
									<p:inputText disabled="true"
										value="#{usuarioMB.usuario.codigo}" id="txtCodigo" />
								</p:column>
								<p:column>
									<h:outputLabel value="Nome" />
									<p:inputText value="#{usuarioMB.usuario.nome}" id="txtNome" />
								</p:column>
								<p:column>
									<h:outputLabel value="Login" />
									<p:inputText value="#{usuarioMB.usuario.login}" id="txtLogin" />
								</p:column>
								<p:column>
									<h:outputLabel value="Senha" />
									<p:inputText type="password"
										value="#{usuarioMB.usuario.senha}" id="txtSenha" />
								</p:column>
								<p:column>
									<h:outputLabel value="Loja padrão" />
									<p:inputText value="#{usuarioMB.usuario.loja.codigo}"
										id="txtLojaPadrao" />
								</p:column>
								<p:column>
									<h:outputLabel value="Perfil" />
									<p:selectOneMenu id="car"
										value="#{usuarioMB.usuario.loja.codigo}">
										<f:selectItem itemLabel="Selecione um" itemValue="#{NULL}" />
										<f:selectItems value="#{entregaMB.lojas}" var="loja"
											itemLabel="#{loja.fantasia}" itemValue="#{loja.codigo}" />
									</p:selectOneMenu>
								</p:column>
							</p:panelGrid>
						</p:panel>
					</h:form>
				</p:dialog>
         
        
          
        
           
           
           
         
         
            
            
          
       
      
        
          
          
            Mike
            
          
          
          
              
              
          #2
          
         
        
          
Isso funciona mesmo?
Se você não quer que seja selecionado, apenas usa o atributo noSelectionOption=“true”
Checa se “#{entregaMB.lojas}” não esta vazio
Posta o restando do codigo,  so o dialog n ajuda mt
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Olá Mike,
Então, sempre utilizei o #{NULL} e vinha funcionando, mas fiz essa alteração que você comentou.
Segue o código do meu XHTML.
<h:form id="formAlterarSenha">
					<p:growl id="growl" showDetail="true" />
					<p:dataTable widgetVar="usuariosDT" id="usuariosDT" var="usuario"
						value="#{usuarioMB.usuarios}" rows="10" paginator="true"
						selectionMode="single" emptyMessage="Nenhum usuário encontrado"
						selection="#{usuarioMB.usuario}" rowKey="#{usuario.codigo}">
						<p:column headerText="Código">
							<h:outputLabel value="#{usuario.codigo}" />
						</p:column>
						<p:column headerText="Nome">
							<h:outputLabel value="#{usuario.nome}" />
						</p:column>
						<p:column headerText="Login">
							<h:outputLabel value="#{usuario.login}" />
						</p:column>
					</p:dataTable>
					<p:panelGrid columns="2"
						style="border:0px !important; background:none;"
						styleClass="ui-panelgrid-blank">
						<p:commandButton value="Alterar"
							onclick="PF('dlgDetalhesUsuario').show()"
							update=":frmDetalhesUsuario" />
					</p:panelGrid>
				</h:form>
				<p:dialog widgetVar="dlgDetalhesUsuario" id="dlgDetalhesUsuario"
					modal="true" header="Dados cadastrais - usuário" resizable="false"
					width="80%">
					<h:form id="frmDetalhesUsuario">
						<p:growl id="growl01" showDetail="true" />
						<p:panel id="pnDetalhesUsuario">
							<p:panelGrid columns="2" id="pgDetalhesUsuario"
								style="border:0px !important; background:none;"
								styleClass="ui-panelgrid-blank">
								<p:column>
									<h:outputLabel value="Código" />
									<p:inputText disabled="true"
										value="#{usuarioMB.usuario.codigo}" id="txtCodigo" />
								</p:column>
								<p:column>
									<h:outputLabel value="Nome" />
									<p:inputText value="#{usuarioMB.usuario.nome}" id="txtNome" />
								</p:column>
								<p:column>
									<h:outputLabel value="Login" />
									<p:inputText value="#{usuarioMB.usuario.login}" id="txtLogin" />
								</p:column>
								<p:column>
									<h:outputLabel value="Senha" />
									<p:inputText type="password"
										value="#{usuarioMB.usuario.senha}" id="txtSenha" />
								</p:column>
								<p:column>
									<h:outputLabel value="Loja padrão" />
									<p:inputText value="#{usuarioMB.usuario.loja.codigo}"
										id="txtLojaPadrao" />
								</p:column>
								<p:column>
									<h:outputLabel value="Perfil" />
									<p:selectOneMenu id="car"
										value="#{usuarioMB.usuario.loja.codigo}">
										<f:selectItem itemLabel="Selecione um"
											noSelectionOption=“true” />
										<f:selectItems value="#{entregaMB.lojas}" var="loja"
											itemLabel="#{loja.fantasia}" itemValue="#{loja.codigo}" />
									</p:selectOneMenu>
								</p:column>
							</p:panelGrid>
						</p:panel>
					</h:form>
				</p:dialog>
E meu Bean está assim
@Named
@ViewScoped
public class UsuarioMB implements Serializable {
private static final long serialVersionUID = 1L;
SqlSession connPostgres;
String novaSenha;
private List<Usuario> usuarios;
@Inject
private UsuarioService usuarioService;
@Inject
private LoginMB sessao;
@Inject
private Usuario usuario;
@Inject
private LojaService lojaService;
@PostConstruct
private void init() {
	this.connPostgres = sessao.getConnPostgres();
	this.usuarios = usuarioService.findAll(connPostgres);
}
public List<Loja> getLojas() {
		List<Loja> lojas = lojaService.todas(connPostgres);
		return lojas;
	}
         
        
        
           
           
           
         
         
            
            
          
       
      
        
          
          
            Mike
            
          
          
          
              
              
          #4
          
         
        
          
No seu selectOneMenu, você chama entregaMB.lojas para popula-lo, mas seu bean UsuarioMB que possui o método getLojas
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Na verdade eu tinha colocado nos dois para testar, pois não conseguia popular.
Mas estou achando que foi aquele #{NULL} que estava quebrando o código e não me mostrava nada, pois fiz a alteração e funcionou…
Obrigado pela ajuda.
         
        
        
           
           
           1 curtida
         
         
            
            
          
       
      
        
          
          
            Mike
            
          
          
          
              
              
          #6
          
         
        
          Que bom que deu certo, eu nunca tinha visto #{NULL} ai suspeitei de cara haha.
Põe resolvido no tópico, pode ser que ajude alguém.
