レコードコンテキスト

RecordContextコンポーネントは単一のDataverseレコードをラップし、エディタ、グリッド、検証要約などすべての子孫コンポーネントにカスケード的な値として提供します。MainContextから継承しているため、保存、リフレッシュ、検証、汚れた状態追跡機能はすべてサポートしています。

レコードの読み込み

どのレコードを RecordContext ロードすべきかを指定する方法はいくつかあります:

  • RecordTableRecord 物を直接渡す。すでにレコードをメモリに持っている場合や新しいレコードを作成する際に便利です。
React
Blazor
  • QueryParameterName および TableName — コンテキストはURLクエリパラメータからレコードIDを読み取り、Dataverseから自動的にレコードを取得します。IDがなければ新しい記録が作成されます。
React
Blazor
  • RecordId および TableName — URLからレコードIDを読み取るのではなく、直接パラメータとして指定すること。
React
Blazor

記録ロードイベント

Dataverseからレコードを取得した後、 RecordLoaded コールバックを使ってロジックを実行します。これは依存状態の初期化や関連データの読み込みに役立ちます。

React
Blazor

コンテキストテンプレート

ChildContentを使う代わりに、ContextTemplateパラメータを使ってテンプレート変数を通じてマークアップ内のTableRecordオブジェクトに直接アクセスできます。

React
Blazor

記録の削除

DeleteAsync()に電話して現在の記録を削除してください。削除が実行される前に、確認ダイアログが表示されます。OnBeforeDeleteコールバックを使ってカスタムロジックを実行したり、CancelEventArgs.Canceltrueに設定して削除をキャンセルしてください。

React
Blazor

URLナビゲーション

QueryParameterNameを使うと、RecordContextは自動的にURLの変更を監視します。同じページに留まったままクエリパラメータの値が変わると、コンテキストはページ全体のナビゲーションなしに新しいレコードを再読み込みます。新たに作成されたレコードを保存した後、URLに新しいレコードのIDが更新されます。

以下の例は、現在のレコードのテキストを表示する簡単な RecordContext を示しています。

Reactの例
ブレイザーの例
(値を選択する)オレンジパープル黄色黒人白いブラウン
React TypeScript
Razor
反応してください ブレイザー

RecordContext クラス

パラメータ

名称
種類
デフォルト
概要
ChildContentRenderFragment?
この文脈でレンダリングされる子コンポーネント。
ContextTemplateRenderFragment<TableRecord>
必要に応じて、記録用のテンプレートを指定することもできます。これによりテンプレート内の「TableRecord」オブジェクトにアクセスできます。
DisableUnsavedChangesWarningbool?
trueに設定すると、ページから離れる際に未保存の変更警告ダイアログが表示されません。 この設定に関係なく、リフレッシュ時に常に警告が表示されます。 明示的に設定されていない場合、その値は親コンテキストから継承されます。
ForceSuccessfulValidationBeforeSavebool
True
記録の検証が成功してから保存を許可した場合、
IsDirtybool
False
レコードや登録済みの子コンテキストに保存されていない変更があるかどうかを示します。
ParentContextMainContext?
最も近い祖先であるMainContextにより、ネストされたコンテキスト階層が可能になりました。
QueryParameterNamestring?
取得すべきレコードのIDを指定するクエリパラメータの名前。
RecordTableRecord?
この記録はこの記録の文脈にリンクされています。
RecordIdstring?
コンテキストのためにレコードの具体的なGUIDを使います。
TableNamestring?
レコードの論理名。
名称: ChildContent
種類: RenderFragment?
概要: この文脈でレンダリングされる子コンポーネント。
名称: ContextTemplate
種類: RenderFragment<TableRecord>
概要: 必要に応じて、記録用のテンプレートを指定することもできます。これによりテンプレート内の「TableRecord」オブジェクトにアクセスできます。
名称: DisableUnsavedChangesWarning
種類: bool?
概要: trueに設定すると、ページから離れる際に未保存の変更警告ダイアログが表示されません。 この設定に関係なく、リフレッシュ時に常に警告が表示されます。 明示的に設定されていない場合、その値は親コンテキストから継承されます。
名称: ForceSuccessfulValidationBeforeSave
種類: bool
デフォルト: True
概要: 記録の検証が成功してから保存を許可した場合、
名称: IsDirty
種類: bool
デフォルト: False
概要: レコードや登録済みの子コンテキストに保存されていない変更があるかどうかを示します。
名称: ParentContext
種類: MainContext?
概要: 最も近い祖先であるMainContextにより、ネストされたコンテキスト階層が可能になりました。
名称: QueryParameterName
種類: string?
概要: 取得すべきレコードのIDを指定するクエリパラメータの名前。
名称: Record
種類: TableRecord?
概要: この記録はこの記録の文脈にリンクされています。
名称: RecordId
種類: string?
概要: コンテキストのためにレコードの具体的なGUIDを使います。
名称: TableName
種類: string?
概要: レコードの論理名。

イベント

名称
種類
概要
OnBeforeDeleteEventCallback<CancelEventArgs>
コールバックから連絡があり、その後削除されました。削除操作のキャンセルを可能にします。
OnBeforeSaveEventCallback<CancelEventArgs>
コールバックから電話がかかってきて、セーブ前に電話がかかってきた。セーブ操作をキャンセルすることが可能です。
RecordLoadedEventCallback<TableRecord>
レコードが読み込まれたときにトリガーされるEventCallback。
名称: OnBeforeDelete
種類: EventCallback<CancelEventArgs>
概要: コールバックから連絡があり、その後削除されました。削除操作のキャンセルを可能にします。
名称: OnBeforeSave
種類: EventCallback<CancelEventArgs>
概要: コールバックから電話がかかってきて、セーブ前に電話がかかってきた。セーブ操作をキャンセルすることが可能です。
名称: RecordLoaded
種類: EventCallback<TableRecord>
概要: レコードが読み込まれたときにトリガーされるEventCallback。

方法

名称
パラメータ
種類
概要
DeleteAsyncTask<bool>
確認を求めるプロンプトが出た後、現在の記録が削除されます。
GetRequestsList<OrganizationRequest>
レコードが汚れている場合は作成または更新リクエストを返し、子コンテキストからのリクエストも返します。
RefreshAsyncbool forceRefresh
Task
サーバーからレコードを再読み込み、未保存の変更についてのプロンプトもオプションで表示します。
ResetStatevoid
レコードとすべての子コンテキストを最後に保存した状態にリセットします。
SaveAsyncbool? refresh
Task<bool>
レコードを保存し、新しく作成されたレコードURLにナビゲートします。
Validatebool
レコードとサブコンテキスト(グリッド、ルックアップ編集、レコード、メイン)を検証します。
名称: DeleteAsync
種類: Task<bool>
概要: 確認を求めるプロンプトが出た後、現在の記録が削除されます。
名称: GetRequests
種類: List<OrganizationRequest>
概要: レコードが汚れている場合は作成または更新リクエストを返し、子コンテキストからのリクエストも返します。
名称: RefreshAsync
パラメータ: bool forceRefresh
種類: Task
概要: サーバーからレコードを再読み込み、未保存の変更についてのプロンプトもオプションで表示します。
名称: ResetState
種類: void
概要: レコードとすべての子コンテキストを最後に保存した状態にリセットします。
名称: SaveAsync
パラメータ: bool? refresh
種類: Task<bool>
概要: レコードを保存し、新しく作成されたレコードURLにナビゲートします。
名称: Validate
種類: bool
概要: レコードとサブコンテキスト(グリッド、ルックアップ編集、レコード、メイン)を検証します。