我們?cè)陂_(kāi)發(fā)中,很難會(huì)遇見(jiàn)不提交表單的情況。常用的apex:commandButton,apex:commandLink,apex:actionFunction,apex:actionSupport。他們進(jìn)行操作的時(shí)候,會(huì)將整個(gè)表單提交。但是我們很多時(shí)候的需求,只是希望提交一部分內(nèi)容,而不是全部。這個(gè)時(shí)候,我們就需要用到apex:actionRegion.
一.apex:actionRegion
apex:actionRegion為當(dāng)一個(gè)ajax請(qǐng)求生成的時(shí)候,可以通過(guò)它來(lái)區(qū)分哪部分區(qū)域/組件可以應(yīng)該被Force.com Service處理,只有在actionRegion內(nèi)部的組件元素被處理。
apex:actionRegion用于apex:form中涉及到表單提交指定區(qū)域塊或者組件的內(nèi)容,如果一個(gè)表單提交請(qǐng)求需要提交整個(gè)頁(yè)面,則不必使用apex:actionRegion。
apex:actionRegion盡管可以用于ajax請(qǐng)求的時(shí)候,指定區(qū)域提交,但是卻無(wú)法定義請(qǐng)求完成后的reRender區(qū)域,reRender操作仍然在相關(guān)的控件的reRender部分來(lái)操作,即apex:actionRegion作用只在于提交表單時(shí)可以指定區(qū)域內(nèi)容來(lái)提交。
二.apex:actionSupport
actionSupport作用為當(dāng)一個(gè)特定的事件被觸發(fā),比如單擊,失去焦點(diǎn),鼠標(biāo)移入等操作被觸發(fā)時(shí),允許組件進(jìn)行異步的刷新功能,常用場(chǎng)景為聯(lián)動(dòng),失去焦點(diǎn)后校驗(yàn)在數(shù)據(jù)庫(kù)中是否唯一等。
actionSupport和actionFunction在功能上很相像,不過(guò)有幾點(diǎn)小區(qū)別:
1.actionSupport是直接被其他的元素調(diào)用,actionFunction可以通過(guò)js調(diào)用,你可以在js中進(jìn)行一些簡(jiǎn)單的處理,也可以直接被其他元素調(diào)用;
2.actionSupport僅允許在單一的事件上調(diào)用action的method,actionFunction可以被多個(gè)事件調(diào)用。
demo舉例:
1.TestActionSupportController:設(shè)置一個(gè)testOptions變量,初始值是xxx,當(dāng)調(diào)用changeOptions后變成yyy
1 public with sharing class TestActionSupportController { 2 3 public&nbs