Ich habe eine dynamische Suchseite geschrieben, um nach benutzerdefinierten Objektdatensätzen zu suchen. Ich verwende eine SOQL-Abfrage und binde die Ergebnisse an eine Datentabelle. Ich muss den Ausgabetext für eine der Spalten basierend auf dem zurückgegebenen Wert ändern.Visualforce -> Kann das Wertattribut "Apex: column" eine Funktion aufrufen, um das Angezeigte neu zu formatieren?
Beispiel: Wenn die SOQL „Tiger“ zurück, ich brauche „Animal“ anzuzeigen, Vogel für Adler, etc ....
Also ich denke, meine Frage ist, ob sein kann ich verwenden, um eine Javascript-Funktion in das Wertattribut von Apex: column? Etwas wie:
<apex:column value="renameObjectType({!mt.objectName__c})">
Und die renameObjectType Funktion ist so etwas wie:
function renameObjectType(val)
{
var inputtextvalue=val.value;
if(inputtextvalue.length>0)
{
if(inputtextvalue=="Tiger")
return "Animal";
}
};
Dies funktioniert nicht, wie ich es will ... Ist dies überhaupt möglich sein?
Danke, Calvin
Danke für die Antwort mein Freund. Ich mache etwas Ähnliches und ich wollte sehen, ob ich das stattdessen im Visualforce-Code machen könnte. Jetzt, bevor ich die SOQL-Ergebnisse in meiner Liste gespeichert habe, deren Typ eine Wrapper-Klasse ist, überprüfe ich das Objekt, um zu sehen, ob der Wert etwas ist, das ich ersetzen muss. Also ist das der beste und empfohlene Weg? Ich dachte, vielleicht könnte ich einen Wert ersetzen, kurz bevor er angezeigt wird, ohne etwas ersetzen zu müssen und es bestehen zu lassen. –
Ich persönlich bevorzuge die Verwendung von Apex, wenn die erforderliche Funktionalität im Rahmen dessen liegt, wofür Apex entwickelt wurde. In Bezug auf das Fortbestehen bin ich mir nicht sicher, was Sie meinen, oder zumindest über das Fortbestehen der aktuellen Sitzung hinaus. Ein temporäres Mitglied eines Wrappers (wie String) ist nur so lange am Leben, wie es benötigt wird, um angezeigt zu werden. Aber um Ihre Frage anders zu beantworten, können Sie absolut alles handhaben, was Sie in JavaScript handhaben möchten. Es hat nur eine schwere Basisarbeit, mit der der Browser sowieso beauftragt ist, also vermeide ich es, diese Verarbeitung hinzuzufügen, wenn Apex den Job gut verarbeitet. – Adam
Ok vielen Dank, dass Sie das klarer machen. –