レコードページの読み取り専用構成要素:ステータスバッジ、郵便住所、そして電信形式をデコードせずに列の値を読み取る方法。
値を分岐させる(ステータスのティント、フラグ表示、日付の比較など)には、ローカライズされたラベルではなく、列の生の値を読みます。Reactでは、 useColumnValue(columnName) 周囲 RecordContext の列の値を単なるJavaScript型として返し、そこに書式化された文字列と列のメタデータを添えて返します。Blazorでは、 GetValueOrDefault<T>付きでレコードから型付けされた値を読み込みます。いずれにせよ、空欄やカラムセキュリティで保留されている列は nullと読み取られますが、 CanReadColumn が両者を区別します。
function OpenMessage() {
const { raw: state } = useColumnValue<number>('statecode');
return state === 0 ? <p>この事件はまだ未解決だ。</p> : null;
}
<RecordContext table="incident" queryParameterName="id">
<OpenMessage />
</RecordContext><RecordContext TableName="incident" QueryParameterName="id">
<ContextTemplate>
@if (IsActive(context))
{
<p>この事件はまだ未解決だ。</p>
}
</ContextTemplate>
</RecordContext>
@code {
// 値は列が空または保留されている場合にnullとなり、nullはアクティブとはカウントされません。
private static bool IsActive(TableRecord record)
=> record.GetValueOrDefault<ChoiceValue>("statecode")?.Value == 0;
}グリッドセルレンダラーやチャートのツールチップなど、RecordContext外では、持っているレコードの@powerportalspro/coreからreadColumnRawValue(record, columnName)を呼び出します。
ColumnStatusBadge レコードのステータス理由(statuscode)を示し、色は状態(statecode)から取られます。アクティブ時はブランドの色合い、それ以外はニュートラルな輪郭線です。色はラベルではなく状態の値から来るため、すべての言語で成立します。ラベルが空または保留されている場合は何もレンダリングされません。
2つ以上の状態を持つテーブルでは、状態の値をバッジの色と外観にマッピングする Tone 関数を渡します。状態が空または保留されていると、この関数は null を受け取ります。
<ColumnStatusBadge
tone={(state) =>
state === 0 ? { color: 'success', appearance: 'tint' }
: state === 1 ? { color: 'informative', appearance: 'outline' }
: { color: 'danger', appearance: 'tint' }}
/><ColumnStatusBadge Tone="@(state => state switch
{
0 => new StatusBadgeTone(BadgeColor.Success, BadgeAppearance.Tint),
1 => new StatusBadgeTone(BadgeColor.Informative, BadgeAppearance.Outline),
_ => new StatusBadgeTone(BadgeColor.Danger, BadgeAppearance.Tint),
})" />AddressDisplayValue テーブルのアドレス(address1、 address2など)を <address> 要素で表示し、 ColumnDisplayValueと同じラベルで表示します。ユーザーがDataverseの _composite 列を読むことができるときに表示します。それ以外は、通りの線、次に市、地域、郵便番号、そして国を構成し、国と一致すると省略します HomeCountry。
名称 | 種類 | デフォルト | 概要 |
|---|---|---|---|
IsVisible | bool | True | バッジは見えるか? |
LabelColumn | string | statuscode | バッジのテキストがフォーマットされた値の列です。デフォルトは |
Size | BadgeSize? | バッジサイズ。デフォルトはフルエント自身のものです。 | |
StateColumn | string | statecode | その値がトーンを決定するカラム。デフォルトは |
Tone | Func<int?, StatusBadgeTone>? | 状態列の値からトーンを選択します — 空の時は null 保留。デフォルトは Nullable{System.Int32}):アクティブのブランド色合いです ( |
IsVisibleLabelColumnSizeStateColumnTonenull 保留。デフォルトは Nullable{System.Int32}):アクティブのブランド色合いです (名称 | 種類 | デフォルト | 概要 |
|---|---|---|---|
Description | string? | 説明はツールチップに表示されます。 | |
DisplayLabelWhenAvailable | bool | True | ラベルが表示されるかどうかを指定します。 |
DisplayTooltipWhenAvailable | bool | True | ツールチップが表示されるかどうかを指定します。 |
EmptyPlaceholder | string | — | アドレスが空のときに表示されるテキスト。デフォルトはエムダッシュ(em-dash)です。空文字列を に渡します 抑え込む。 |
HomeCountry | string? | 国は、例えば「United States」などの構成された住所を、ポータルの代わりに外すべきです 住所はほとんどが家庭内です。格やアクセントを無視して比較しました。当てはまりません アドレスはDataverse独自の合成アドレスであり、Dataverseがフォーマットした際に表示されます。 | |
IsVisible | bool | True | 住所は見えるか? |
Label | string? | ラベルとして表示されるテキスト。 | |
Prefix | string | address1 | アドレスの列プレフィックス — |
DescriptionDisplayLabelWhenAvailableDisplayTooltipWhenAvailableEmptyPlaceholderHomeCountryIsVisibleLabelPrefix