17-2: Create a Simple Read-Only Property

DEX450 - Module 17: Working with Custom Controllers and Controller Extensions

📄 第 441 页 🎬 视频课程

课程章节介绍

让我们一步一步来完成这个任务。首先,我们需要创建一个简单的只读属性,名为“TO多斯”。这个属性将帮助我们获取一些特定的记录,并在Visualforce页面上显示它们。 ,TODO#1 - 在扩展中编写控制器扩展构造函数, 首先,我们需要在控制器扩展中编写一个构造函数。这个构造函数的目的是获取一个特定的账户记录。我们可以这样做: ```apex public class AccountExtension { private final Account acct; public AccountExtension(ApexPages.StandardController stdController) { this.acct = (Account)stdController.getRecord(); } } ``` 在这个代码中,我们创建了一个名为`AccountExtension`的类,并在其中定义了一个构造函数。这个构造函数接收一个标准的控制器对象,并从中获取账户记录。 ,TODO#2 - 在扩展中编写属性以获取Certification_Attention__c记录, 接下来,我们需要编写一个属性,这个属性将返回一个列表,列表中包含状态为“不完整/通过”或“完整/失败”的`Certification_Attention__c`记录。我们可以指定我们想要获取的字段。代码如下: ```apex public List getCertificationAttentions() { return [SELECT Id, Name, Status__c FROM Certification_Attention__c WHERE Account__c = :acct.Id AND (Status__c = 'Incomplete/Passed' OR Status__c = 'Complete/Failed')]; } ``` 这里,我们定义了一个名为`getCertificationAttentions`的方法,它返回一个`Certification_Attention__c`对象的列表。我们使用SOQL查询来获取与当前账户相关的记录,并且只选择那些状态符合我们要求的记录。 ,TODO#3 - 在VF页面中添加标准控制器和扩展属性, 现在,我们需要在Visualforce页面中设置标准控制器和扩展。我们可以这样做: ```html ``` 在这个代码中,我们指定了标准控制器为`Account`,并且使用了我们刚刚创建的`AccountExtension`作为扩展。 ,TODO#4 - 在VF页面中添加标签, 最后,我们需要在Visualforce页面中添加一个``标签来显示我们的记录。我们可以这样做: ```html ``` 在这里,我们使用了`value`属性来绑定我们之前创建的`certificationAttentions`属性,并使用`var`属性来定义每一行的变量名`ca`。然后,我们定义了两列,分别显示`Name`和`Status__c`字段。 这样,我们就完成了创建一个简单的只读属性“TO多斯”的任务,并在Visualforce页面上显示了相关的记录。希望这个过程对你来说清晰易懂!如果有任何疑问,随时问我。