Apex: 用VF页面实现同时插入一个Account和多个Contact(V1.0)

本文档介绍了如何使用Visualforce(VF)页面和Apex控制器实现一个功能,即在Salesforce中创建一个新的Account并同时插入多个相关的Contact。文章详细阐述了需求、逻辑设计、代码实现,包括Controller和VF页面的编写,以及PageReference和apex:param的使用。在删除Contact时,通过内部类和apex:param传递数字来定位并移除相应Contact。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值