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,文章若有指代不明或者有什麼沒有闡述清楚的地方,歡迎留言討論,共同學習,謝謝!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章