共用方式為


如何處理事件

提示

Power BI Embedded Analytics 遊樂場開發人員沙箱 區段中,使用您自己的報表或我們的範例報表,實時實驗 API。

事件可用來在Power BI元件(例如報表)與Web應用程式程式代碼之間進行通訊。

內嵌元件會在元件內執行動作之後發出事件。 這些可以是用戶互動或元件內的自動化動作(例如正在轉譯的視覺效果)。

例如,當使用者按兩下報表中的按鈕時,Power BI 報表會發出 buttonClicked 事件。 您可以使用 report.on(...)來接聽事件,然後設定事件處理程式。

如何處理事件的範例

此範例示範如何處理報表事件。 若要瞭解其他類型的事件,請參閱 事件及其回應值

注意

使用 API 之前,請等候元件載入。 接聽載入的事件,然後發出新的命令。

report.on('loaded', function(event)
{
    reportPages = await report.getPages();
});

如何移除事件處理程式

您可以使用 report.off(...) 來移除特定事件的所有事件處理程式。

事件及其回應值

檢視可能事件及其回應值的完整清單。

錯誤事件 (與所有內嵌相關)

發出錯誤事件來描述失敗的作業。

interface IError {
    message: string // A general message that describes the operation that failed (example: "Could not set page")
    detailedMessage?: string // Detailed message that describes the error
    errorCode?: string  //  Short message that describes the error
    level?: TraceType // The level of the error (example: 'Fatal')
    technicalDetails?: ITechnicalDetails
}

interface ITechnicalDetails {
    requestId?: string // Id for debugging - should be provided when reporting a bug
}

注意

只需要 message 屬性,而且其他屬性可能未定義。

報告事件

報表事件會發出,以便與內嵌報表互動,例如按兩下報表按鈕或轉譯視覺效果。

buttonClicked

當使用者按兩下 [報表] 按鈕時,就會引發 buttonClicked 事件。

 id: string
 title?: string
 type?: string (type of button)
 bookmark?: string

commandTriggered

當使用者按兩下 擴充功能命令時,就會引發 commandTriggered 事件。

 command: string
 dataPoints?: IIdentityValue[]
 report: models.IReport
 page: models.IPage
 visual: models.IVisual

dataHyperlinkClicked

點選超連結時,就會引發 dataHyperlinkClicked 事件,且 超鏈接的行為 設定為 NavigateAndRaiseEventRaiseEvent

 url: string
 report: models.IReport
 page: models.IPage
 visual: models.IVisual

如需詳細資訊,請參閱 設定報表設定

dataSelected

選取特定數據點時,會引發 dataSelected 事件。

 report: models.IReport
 page: models.IPage
 visual: models.IVisual
 filters: IFilter[]
 dataPoints: IIdentityValue[]

載入

當報表初始化時,就會引發 loaded 事件。 當 Power BI 標誌消失時,載入就會完成。

pageChanged

每當頁面變更時,就會引發 pageChanged 事件。

 newPage: Models.IPage

呈現

當報表完全轉譯時,就會引發 rendered 事件。 例如,如果載入報表或用戶互動之後,所有視覺效果都會呈現。

saveAsTriggered

當使用者按兩下 UI 中的 [另存新檔] 時,就會引發 saveAsTriggered 事件。 這可讓您為 另存新檔 動作建立自己的對話方塊。

保存

saved 事件會在UI或 API 中使用 API 的 savesaveAs 動作觸發儲存時引發。

selectionChanged

每當使用者變更選取的視覺效果時,就會引發 selectionChanged 事件。 當選取多個視覺效果時,selectedItems 是所有選取的視覺效果清單。

 report: models.IReport
 page: models.IPage
 visual?: models.IVisual
 selectedItems?: models.IVisual[]

visualClicked

每次按兩下視覺效果時,就會引發 visualClicked 事件。

 report: models.IReport
 page: models.IPage
 visual: models.IVisual

visualRendered

當呈現視覺效果時,會引發 visualRendered 事件(需要在 settings 物件中將 visualRenderedEvents 設定為 true)。

注意

由於視覺效果可能會因為用戶互動而轉譯,因此建議只有在需要時才開啟此事件。

 name: string

如需詳細資訊,請參閱 設定報表設定

報表內嵌行動事件

報表內嵌行動裝置事件會發出,以便與行動版面配置中的內嵌報表互動,例如撥動的開頭或結尾。

swipeStart 和 swipeEnd 事件

當用戶開始或結束內嵌報表上的撥動移動時,就會引發 swipeStartswipeEnd 事件。

interface ISwipeEvent {
    currentPosition: IPosition
    startPosition: IPosition
}

interface IPosition {
    x: number
    y: number
}

儀錶板事件

當儀錶板載入時,以及用戶單擊儀錶板中的磚時,就會發出儀錶板事件。

載入

當儀錶板初始化時,會引發 loaded 事件。

tileClicked

當使用者按兩下磚時,就會引發 tileClicked 事件。 未針對釘選的即時頁面引發。

 tileId: string
 navigationUrl: string
 pageName: string
 reportEmbedUrl: string

Q&A 事件

當視覺效果在輸入問題之後呈現時,就會引發問答 (Q&A) 事件。

visualRendered (Q&A)

當輸入問題並顯示答案之後,視覺效果呈現時,就會引發 visualRendered 事件。

 question: string
 normalizedQuestion: string

磚事件

當使用者按兩下磚時,就會引發 Tile 事件。

tileClicked (磚事件)

當使用者按兩下磚時,就會引發 tileClicked 事件。 未針對釘選的即時頁面引發。

 tileId: string
 navigationUrl: string
 pageName: string
 reportEmbedUrl: string

tileLoaded

當磚初始化時,會引發 tileLoaded 事件。 當 Power BI 標誌消失時,載入就會完成。