显示未知SOQL查询的结果

时间:2013-02-28 10:22:24

标签: salesforce apex-code visualforce

我有一个要求,我想知道是否有可能。我有visualforce页面,它将显示SOQL查询的结果,但SOQL查询是动态的,可以是自定义对象或标准Obejcts的查询。我目前正在努力将SOQL查询编码到控制器类中,同时试图弄清楚它是如何工作的。我打算在Apex中的pageBlockTable或dataTable中显示SOQL查询的结果。

这是否可以在Salesforce中使用,如果是这样,有人能给我一个如何在Visualforce和Apex中工作的例子吗?

1 个答案:

答案 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.AccountNumbera.get('AccountNumber')类似。如果您从未见过,请查看getting Value of a field by its Name in apex salesforce


您必须小心谨慎,因为如果您的基础对象不会成为帐户,则会失败(例如,没有Contact.AccountNumber字段)。上面的示例仅涉及帐户,但无论如何它都是一个很好的介绍。

一旦您熟悉了基本概念,您就可以探索fieldsets的世界 - 预定义的字段组合 - 您可以将它们用于显示和查询数据,基本上它们更强大比具有字段名称的字符串的硬编码列表(如在第一个链接中)但仍然是相同的想法。

至少您现在知道要查找的关键字;)