Ha algum tempo esbarrei em uma situacao inusitada. Estava utilizando um campo <apex:InputField /> no Visualforce da Salesforce e queria desabilitar esse campo, de acordo com uma situacao vinda da minha classe Apex controller. Fui procurar a propriedade Disabled ou Enabled e nao encontrei! Afinal, esse atributo nao existe no apex:InputField.Entao resolvi essa situacao de uma forma diferente. Comecei a trabalhar com dois componentes na tela: O apex:InputField quando eu necessitava do dele Habilitado e o apex:OutputField quando precisava dele desabilitado.Dessa forma, veja um exemplo simples da minha classe controller: public class DesabilitandoInputFieldController { public boolean habilitado { get; set; } public Account conta { get; set; } public DesabilitandoInputFieldController(){ this.habilitado = true; this.conta = new Account(); this.conta.Industry = 'Technology'; } public PageReference AlteraHabilitado() { this.habilitado = !this.habilitado; return null; } } Veja que foi criado uma propriedade na classe controller, chamado "habilitado" que e usado para dizer se o apex:InputField estara Habilitado ou Desabilitado. Foi construido tambem um metodo para realizar a habilitacao/desabilitacao do campo.Agora veja minha pagina Visualforce: <apex:page controller="DesabilitandoInputFieldController"> <apex:form > <apex:PageBlock > <apex:pageBlockButtons > <apex:commandButton action="{!AlteraHabilitado}" value="Alterar visibilidade!"/> </apex:pageBlockButtons> <apex:PageBlockSection > <apex:PageBlockSectionItem> <apex:OutputLabel value="Conta"></apex:OutputLabel> <apex:outputPanel> <apex:InputField value="{!conta.Industry}" rendered="{!habilitado}"/> <apex:OutputField value="{!conta.Industry}" rendered="{!NOT(habilitado)}"/> </apex:outputPanel> </apex:PageBlockSectionItem> </apex:PageBlockSection> </apex:PageBlock> </apex:form> </apex:page> Perceba que foi colocado dentro do Apex:OutputPanel um apex:InputField e apex:OutputField. Com o rendered nesses componentes, consigo exibir um ao mesmo tempo que oculto outro. Para isso, uso o NOT, para inverter a exibicao. Veja como ficou a pagina Visualforce, com o campo Habilitado:Ja com o campo "desabilitado", que na verdade e um OutputField:Bem, por hoje e isso!* Esta precisando de um suporte ou uma consultoria no desenvolvimento de paginas Visualforce e classes Apex na sua ORG Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/ Voce que desenvolve paginas Visualforce no Salesforce, provavelmente ja enfrentou dificuldades ao exibir data e hora em paginas Visualforce - VF. Como ja expliquei em um post anterior (com titulo Datetime no horario local em paginas Visualforce), o Salesforce armazena as informacoes de Data/Hora no GMT 0. Portanto, se nao for feito nada, essas informacoes serao exibidas na VF no GMT 0, o que ira confundir o usuario.Alem da sugestao de resolucao que dei no post supracitado, encontrei duas outras formas. Veja quais sao:1) Utilizar <apex:OutputField />Veja que quando se utiliza o <apex:OutputField /> diferente do <apex:OutputText /> a hora ja vem formatada no GMT padrao.Controller: public class TesteController { public MeuObjeto__c obj { get; set; } public TesteController() { this.obj = new MeuObjeto__c(); this.obj.DataHoraOcorrido__c = DateTime.Now(); }}Visualforce: <apex:page controller="TesteController" > <apex:outputText value="{!Obj.DataHoraOcorrido__c}" /> <br/><br/> <apex:outputField value="{!Obj.DataHoraOcorrido__c}" /></apex:page>Resultado:2) Utilizar o fuso horario atraves do ApexDessa forma, crio uma propriedade no Apex que retorna um calculo em cima do Timezone (fuso horario) do Usuario, que deve ser adicionado a Data/Hora.Controller:public class TesteController { public MeuObjeto__c obj { get; set; } public TesteController() { this.obj = new MeuObjeto__c(); this.obj.DataHoraOcorrido__c = DateTime.Now(); } public Double Timezone { get { return UserInfo.getTimeZone().getOffset(DateTime.now()) / (1000 * 3600 * 24.0); } }}Visualforce: <apex:page controller="TesteController" > Nao formatado: <br/> <apex:outputText value="{!Obj.DataHoraOcorrido__c + timezone}" /> <br/><br/> Formatado: <br/> <apex:outputText value="{0,date,dd/MM/yyyy HH:mm:ss}"> <apex:param value="{!Obj.DataHoraOcorrido__c +