我有一个要求,我想知道是否有可能。我有visualforce页面,它将显示SOQL查询的结果,但SOQL查询是动态的,可以是自定义对象或标准Obejcts的查询。我目前正在努力将SOQL查询编码到控制器类中,同时试图弄清楚它是如何工作的。我打算在Apex中的pageBlockTable或dataTable中显示SOQL查询的结果。
这是否可以在Salesforce中使用,如果是这样,有人能给我一个如何在Visualforce和Apex中工作的例子吗?
答案 0 :(得分:2)
你应该阅读"动态参考资料" (也称为"动态绑定")。一个很好的起点:http://www.salesforce.com/us/developer/docs/pages/Content/pages_dynamic_vf_sample_standard.htm
基本上如果你有String fieldName = 'AccountNumber';
,稍后在Visualforce中你可以直接引用它:
<apex:outputField value="{!a.AccountNumber}">
或动态:
<apex:outputField value="{!a[fieldName]}">
。
这与Apex中的a.AccountNumber
或a.get('AccountNumber')
类似。如果您从未见过,请查看getting Value of a field by its Name in apex salesforce。
您必须小心谨慎,因为如果您的基础对象不会成为帐户,则会失败(例如,没有Contact.AccountNumber
字段)。上面的示例仅涉及帐户,但无论如何它都是一个很好的介绍。
一旦您熟悉了基本概念,您就可以探索fieldsets的世界 - 预定义的字段组合 - 您可以将它们用于显示和查询数据,基本上它们更强大比具有字段名称的字符串的硬编码列表(如在第一个链接中)但仍然是相同的想法。
至少您现在知道要查找的关键字;)