表單與網格中的事件啟動了模型驅動應用程式中所有客戶端程式碼。 你會在 JavaScript 函式庫(腳本網頁資源)中關聯特定函式,當事件發生時執行。 此函式稱為 事件處理常式。 每個事件處理常式都會指定 JavaScript 程式庫內的單一函式,以及可傳遞給函式的任何參數。
你可以透過介面將事件處理器與部分事件關聯。 對於無法透過 UI 關聯的事件,Client API 提供了方法來附加事件處理器。
透過使用者介面在表單中新增或移除事件處理程式函式
在新統一介面中新增或移除事件處理程式:
前往 Power Apps。
在左側導覽窗格中,選取資料,然後選取資料表。
從表格清單中,選取您要新增事件處理常式的表格。
從指令列選擇 表單 標籤,然後選擇你想加入事件處理程序的表單。
選擇 活動 標籤。你會看到 On Save 和 On Load 事件處理器。
要新增變更事件的事件處理器,請選擇欄位,然後選擇 事件 標籤。
大量編輯表單
預設情況下,當表單處於批量編輯模式時,事件處理器不會執行。
要啟用批量編輯模式下的事件處理程序,請透過尋找相關 event 元素並建立或設定 BehaviorInBulkEditForm 屬性 Enabled來修改表單 XML 。 目前,此行為僅支援 OnLoad 事件。
欲了解更多關於表單XML自訂的資訊,請參閱 「何時編輯自訂檔案」、「 自訂表單」及表 單XML結構。
要判斷事件處理程序何時會在表單中以批量編輯模式執行,請使用以下 getFormType 方法。
透過使用 Client API 程式碼新增或移除事件處理程式
請使用以下方法新增或移除無法透過 UI 關聯的事件處理程序:
| 活動 | 事件處理常式 |
|---|---|
| 屬性 OnChange | addOnChange 和 removeOnChange 方法 |
| 表單 OnLoad | formContext.ui addOnLoad 和 removeOnLoad 方法 |
| 表 單載入 | formContext.ui addLoaded 和 removeLoaded 方法 |
| 表單資料 OnLoad | formContext.data addOnLoad 和 removeOnLoad 方法 |
| 表單 OnSave | addOnSave 和 removeOnSave 方法 |
| 查閱控制項 PreSearch | addPreSearch 和 removePreSearch 方法 |
| kbsearch 控制項 OnResultOpened | addOnResultOpened 和 removeOnResultOpened 方法 |
| kbsearch 控制項 OnSelection | addOnSelection 和 removeOnSelection 方法 |
| kbsearch 控制項 PostSearch | addOnPostSearch 和 removeOnPostSearch 方法 |
這很重要
執行上下文會自動作為你用程式碼設定的函式的第一個參數傳遞。 更多資訊請參閱 客戶端 API 執行上下文。
表單事件管線
您最多可以為每個事件定義 50 個事件處理常式。 表單屬性對話框中事件標籤中的事件處理程序區塊顯示事件處理程序的順序,每個事件處理程序依照該順序執行。
使用 setSharedVariable 和 getSharedVariable 方法,在事件處理常式 (函數) 之間傳遞通用變數。 使用執行上下文 getDepth 方法來了解事件處理器執行順序相對於其他事件處理器的順序。