Apex——练习三:对当前contact进行编辑修改,将数据回显到contactList页面中

根据主题内容,可以会有一个方法获取到contact的一些字段信息显示在页面上,也会有一个类似save的方法,来保存数据,并跳转回去,也会有一个cancel方法来取消操作,因此:
Controller:MyGetContactDetail

public class MyGetContactDetail {
    //用来获取URL上的contactId
    private String contactId = null;
    //用来获取accountId,方便回到之前对应的contact页面
    private String accountId = null;
    //用来保存查询出来的当前contact的一些会被修改的基本信息
    private Contact contactDetail=null;
     
    //构造函数,在类进行初始化时就会允许其中的获取URL参数的代码,因此后面的方法中的变量值便会得到初始化
    public  MyGetContactDetail (){
        contactId = ApexPages.currentPage().getParameters().get('Id');
        accountId = ApexPages.currentPage().getParameters().get('AccountId');
        //SOQL语句进行查询
        contactDetail = [SELECT Name,Email,Description,AccountId,Id FROM Contact WHERE Id=:contactId ];
    }
    
    
    public Contact getContactDetail(){
        //构造函数中以及获取了,直接返回
        return contactDetail;
    }
        
     //PageReference这个修饰符就是用来返回页面page的
    public PageReference save(){
        update contactDetail;
        //因为页面上的字段都是和这个类中查出来的contact绑定的,所以我们不需要再进行获取修改的值了,而是直接进行修改
        //然后回到原来的页面
        String url = '/apex/ContactList?&accountId='+contactDetail.accountId;
        PageReference pageRef  = new PageReference(url);
        return pageRef;
    }
    
    //save与cancel唯一的区别就是一个对数据进行更新,一个不更新
    public PageReference cancel(){
        String url = '/apex/ContactList?&accountId='+contactDetail.accountId;
        PageReference pageRef  = new PageReference(url);
        return pageRef;
    }
}

VF Page:EditContact

<apex:page controller="MyGetContactDetail">
    <apex:form >
        <apex:pageBlock title="Edit Contact" id="contacts_Edit">

            <apex:pageBlockSection columns="1">
            <!--这里直接调用getContactDetail方法返回的参数再加上你要显示的字段-->
                <apex:inputField value="{! contactDetail.Name }"/>
                <apex:inputField value="{! contactDetail.Email }"/>        
                <apex:inputField value="{! contactDetail.Description }"/>        
            </apex:pageBlockSection>
     
            <!--value="./EditContact?core.apexpages.request.devconsole=1"-->
            <apex:pageBlockButtons > 	
            <!--定义两个按钮并绑定两个方法-->
                <apex:commandButton action="{! save }" value="Save" />  
                <apex:commandButton action="{! cancel}" value="Cancel" />    
        	</apex:pageBlockButtons>    
        </apex:pageBlock>
    </apex:form>
</apex:page>

该练习为本人实习课题,经过实测后才写入blog,文章若有指代不明或者有什么没有阐述清楚的地方,欢迎留言讨论,共同学习,谢谢!!

你可能感兴趣的:(Apex)