2

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

这在 Salesforce 中是否可行,如果可以的话,谁能给我一个例子,说明它在 Visualforce 和 Apex 中如何工作?

4

1 回答 1

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]}">.

这类似于拥有a.AccountNumbera.get('AccountNumber')在 Apex 中。如果您从未见过,请查看例如在 apex salesforce 中按名称获取字段的值。


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

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

至少您现在会知道要查找哪些关键字;)

于 2013-02-28T10:47:26.753 回答