Hi,陌生的朋友,欢迎来看我的笔记,如果你觉得对你有帮助,千万记得点个赞哦~ 不过其实我也只是个小白,目前在自学Java和Salesforce,所以如果你发现任何有遗漏错误的地方,欢迎交流指正!
一、需求阐述
这个Task的需求非常简单,就是要求写一个页面,在这个页面上可以新建Account和Contact,并且每个Account可以对应多个Contact。
二、逻辑梳理
简单分析之后,我们发现要实现这个功能,页面中至少要包括三个Button:Add,Delete,Save。
- Add:用于添加多条Contact。
- Delete:删除Contact,显示在每一条Contact之后。
- Save:保存。
这个程序最核心的逻辑是:一个Account有多个Contact。如何实现呢?非常简单!即在做插入操作之前,把页面中所有的Contact的AccountId字段赋值为当前Account的Id。
其次是删除的逻辑:我们会通过一个内部类,实现在添加Contact的时候有一个数字与之对应。在点击删除按钮时,我们把这个数字通过apex:param传到后台,然后程序找到对应的Contact,并把它从Contact列表remove掉。
三、代码实现
1.Controller
public with sharing class addContact {
ApexPages.StandardController sc;
public Account acct{set; get;}
public Integer marker = 2;
public Integer selectedContact{set; get;}
public List<WrapperClass> lContacts{get; set;}
public addContact(ApexPages.StandardController controller){
this.acct = (Account)controller.getRecord();
sc = controller;
lContacts = new List<WrapperClass>();
Contact c = new Contact();
lContacts.add(new WrapperClass(c, 1));
}
public PageReference addAContact(){
Contact c = new Contact();
lContacts.add(new WrapperClass(c, marker));
marker = marker + 1;
return null;
}
public PageReference saveAccount(){
Database.SaveRe