Domanda

vorrei sapere se posso modificare gli attributi di tag Apex Visualforce dal controller.

Posso fare qualcosa di simile:

tag:

 <apex:selectList id="Status" value="blah blah" multiselect="false" size="1">

nel controller:

if (inc.Status__c == 'Closed'){
    Status.Rendered = false
}

La speranza che ha senso!

Sono in corso a fare questo , che credo sia un po 'lungo senza fiato e voglio evitare:

tag

 <apex:selectList id="Status" value="blah blah" rendered="{!IncidentIsClosed}">

nel controller

   if (inc.Status__c == 'Closed'){
    IncidentIsClosed = false;
    }

    ....

    public Boolean getIncidentIsClosed() {
            return IncidentIsClosed;
        }

speranza che aiuta!

È stato utile?

Soluzione

La sintassi per i campi di unione (roba tra parentesi {!...}) è uguale a quello per le regole di convalida, campi formula, flusso di lavoro innescando condizioni ecc Quindi è possibile utilizzare funzioni come TODAY() nonché una logica più complessa.

Quindi penso che se oggetto "inc" è visibile nella pagina allora qualcosa come

...rendered="{!not(inc.Status='Closed')}

dovrebbe fare il trucco. Se si utilizzano controller standard quindi sostituire "inc" con il nome sObject (come "Case").

Altri suggerimenti

Sono venuto a Visualforce da un ambiente .NET dove si poteva cambiare pagina dal controller (o per la disponibilità di mezzi per creare parti della pagina dal controller), quindi capisco la tua domanda ...

Purtroppo, non si può fare lo stesso in Visualforce.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top