メイングリッド
MainGridコンポーネントはDataverseレコードを表示するための独立したグリッドです。SubGridとは異なり、親のRecordContextを必要とせず、指定されたテーブルやビューから直接レコードを読み込みます。
ライブデモ contactテーブル上のスタンドアロンMainGridがあり、2つのカスタムビュー(アクティブ連絡先 とマイ連絡先 )に配線されています。ビューピッカーのドロップダウンを使って切り替え、検索ボックスでフィルターを選び、列ヘッダーをクリックしてソートし、フッターで結果をページングできます。親RecordContextは不要で、グリッドは提供されたビューから直接レコードを読み込みます。
Reactの例
ブレイザーの例
React TypeScript
Razor
誰でも下のグリッドで連絡先を確認できます。ログインして、自分の連絡先を作成、閲覧、更新してください。
No rows are selected
Row not selected Abagail Miller (501) 801-9303 Abagail_Miller30@yahoo.com Lowe Inc 26 2000/04/08 Row not selected Abdul Pollich (319) 579-4439 Abdul73@yahoo.com Wiza, Bradtke and Hintz 70 1956/08/03 Row not selected Abel Parisian (631) 444-9854 Abel84@gmail.com Raynor - Lakin 21 2005/08/16 Row not selected Abigale Kuvalis (369) 810-9954 Abigale71@gmail.com Murazik Group 58 1968/03/14 Row not selected Adell Paucek (260) 615-0566 Adell99@yahoo.com Windler, Toy and D'Amore 47 1979/12/06 Row not selected Adella Roob (535) 638-9390 Adella.Roob88@hotmail.com Pollich - Kling 67 1959/06/04 Row not selected Adolf Weber (978) 300-6533 Adolf.Weber10@gmail.com West Group 69 1957/05/22 Row not selected Adonis Torphy (842) 804-9308 Adonis_Torphy35@hotmail.com Mohr and Sons 34 1992/08/08 Row not selected Agustin Goyette (374) 932-0000 Agustin_Goyette@gmail.com Lebsack, Homenick and Carter 34 1992/01/08 Row not selected Agustin Rau (986) 867-9045 Agustin_Rau@gmail.com Lehner Group 40 1986/02/24
テーブル名による読み込み
TableNameパラメータを設定して、そのテーブルのすべての公開ビューを自動的に読み込むようにしてください。最初のデフォルトビューが最初に選択されます。
React
Blazor
<MainGrid tableName="contact" /> <MainGrid TableName="contact" />
ビューIDによる読み込み
ViewIdsとDefaultViewIdを使って、どのビューが利用可能で、どのビューが読み込み時に選択されるかを正確に制御できます。また、CustomViewDefinitionsにインラインのFetchXMLを提供し、コード内で直接ビューを定義することもできます。
React
Blazor
<MainGrid
viewIds={viewIds}
defaultViewId="..."
/>
const viewIds = ['...', '...']; <MainGrid ViewIds="_viewIds"
DefaultViewId="@(new Guid("..."))">
</MainGrid>
@code {
private List<Guid> _viewIds = new List<Guid>
{
new Guid("..."),
new Guid("..."),
};
}
FetchXMLによるカスタムビュー
CustomViewDefinitionsを使ってカスタムFetchXMLクエリでビューを定義できます。これは、現在のユーザー、リンクされたエンティティ、その他の動的条件に基づくフィルターを含むビューに有用です。
注記
カスタムGridViewDefinitionのIdは、既存のDataverseビューに対応しない 一意のランダムGUIDでなければなりません。既存のビューIDと一致すれば、Dataverseビューが優先され、カスタム定義は無視されます。
React
Blazor
const customViews: CustomViewDefinition[] = [
{
id: '...',
tableName: 'contact',
displayName: '全接触',
fetchXml: `<fetch>
<entity name="contact">
<attribute name="fullname" />
<attribute name="emailaddress1" />
<order attribute="fullname" />
</entity>
</fetch>`,
columns: [
{ columnName: 'fullname', width: 200 },
{ columnName: 'emailaddress1', width: 250 },
],
},
]; private List<GridViewDefinition> _customViews = new List<GridViewDefinition>
{
new GridViewDefinition
{
Id = new Guid("..."),
TableName = "contact",
DisplayName = "全接触",
FetchXml = @"<fetch>
<entity name='contact'>
<attribute name='fullname' />
<attribute name='emailaddress1' />
<order attribute='fullname' />
</entity>
</fetch>",
Columns = new List<ViewColumn>
{
new ViewColumn { ColumnName = "fullname", Width = 200 },
new ViewColumn { ColumnName = "emailaddress1", Width = 250 },
}
}
};
ディスプレイネーム
GridViewDefinitionのDisplayNameを設定して、ローカライゼーションファイルの入力を必要とせずにドロップダウンセレクターでビューのデフォルトラベルを提供します。tables.{TableName}.views.{Id}.labelにローカライゼーションキーが存在する場合、DisplayNameよりも優先されます。これは、ローカライゼーションエントリを追加せずにすぐに読みやすい名前を得たいカスタムビューに役立ちます。
ツールバーボタン
MainGridはSubGridと同じツールバーボタンをサポートしています。独立したグリッドでは、NavigateNewRecordGridButtonとNavigateOpenRecordGridButtonが別々のフォームページに移動するためによく使われます。利用可能なすべてのボタンとその設定オプションの完全な参考文献は、グリッドボタンの ドキュメントをご覧ください。
React
Blazor
<MainGrid tableName="contact">
<GridButtons>
<NavigateNewRecordGridButton url="/contacts/new" />
<NavigateOpenRecordGridButton
urlFor={(record) => `/contacts/edit?contactId=${record.id}`}
/>
</GridButtons>
</MainGrid> <MainGrid TableName="contact">
<Buttons>
<NavigateNewRecordGridButton Url="/contacts/new" />
<NavigateOpenRecordGridButton Url="/contacts/edit?contactId={0}" />
</Buttons>
</MainGrid>
検索ボックスの挙動
ユーザーがグリッドの検索ボックスに入力すると、設定されたビューは自動的に再クエリされ、ビュー内の検索対象となるすべての列に追加のフィルター条件が適用されます。条件は OR ロジックで結びついているため、表示される列 のいずれか が検索語と一致すればレコードが含まれます。デフォルトのマッチセマンティクスは列の種類によって異なります。
テキストおよび検索カラム
テキスト列 (文字列フィールド)や ルックアップ列 (ターゲットレコードのプライマリ名と照合)は、デフォルトで 検索開始 を使用します。 joh のタイプは、 joh で始まる値(例えば John や Johnson)に一致します。マッチングはFetchXMLの like オペレーターに委譲されており、Dataverseでは大文字に区別されません。
*をワイルドカードとして使い、より柔軟なマッチングを行ってください。*hnのタイプ入力は包含スタイルのマッチング(例:John、Johnson)を行います;j*nのタイプは、jとnの間に任意の文字が現れる値をマッチさせます(例:John、Joneson)。ワイルドカードはクエリ時にFetchXMLの%ワイルドカードに変換されます。
選択列
選択列 (オプションセット/ピックリスト)および 複数選択選択列 は、各選択肢の 局所的な表示ラベル と照合され、基となる整数値とは異なります。現在のユーザーの文化ではラベルは大格やアクセントに無神経に比較されるため、 cafe と入力すると Caféとラベル付けされたオプションと一致します。1つ以上のオプションラベルが一致すると、クエリはマッチするオプション値に対してFetchXML条件を発行します。これは単一選択選択列の場合は in 条件、複数選択選択列には contain-values 条件です。ラベルが一致しない場合、その列は条件を寄与しません( OR フィルターのコンパクトさを保ちます)。
選択列はテキスト列と同じワイルドカード*を尊重します。デフォルトではマッチは(Activeと入力actマッチ)で始まり 、先頭*は「contains 」に切り替わり(*act入力するとさらにInactiveとマッチします)。一致する行は、テキストカラムマッチと同様にグリッド上でマッチした部分文字列がハイライトされます。
数値およびマネーカラム
数値列 (int、big int、decimal、double、money)は検索語の比較演算子をサポートします。検索ボックスはオプションの先頭演算子を解析し、対応するFetchXML条件演算子を適用します:
= 100 または単に 100 — 等しい(演算子が指定されていない場合のデフォルト)
> 100 — より大きい
< 100 — より少なく
>= 100 — 大きすぎるか等しい
<= 100 — 以下または等しい
日付列
日付列 は数字列と同じ演算子を使い、1日または1年を対象にします。年は4桁で、日は 2026-03-15 またはユーザーの言語で日付を書く方法(英語で3/15/2026 、ドイツ語で 15.03.2026 )で表記されます。日だけがカウントされ、時間は計りません。したがって、15日午後11時に作成された記録は15日に記録されます。数字セルと同様に一致するセルはハイライトされます。
2026 あるいは = 2026 — 2026年のどの日でも
> 2026 — 2027年1月1日より
<= 2019 — 2019年12月31日まで
2026-03-15 — 2026年3月15日
>= 2026-03-15 — 2026年3月15日以降
日付列に時間が記載され、ユーザーのタイムゾーンに該当する日、つまりグリッドに表示される日と同じ日に比較されます。
注記
すべての列タイプの検索条件は同じ OR フィルターグループに追加されるため、同じ検索語がテキストカラム、ルックアップカラム、選択カラム、数値カラム、日付カラムと同時に評価されます。名前列と金額列の両方を持つグリッドで 100 を入力すると、名前が 100で始まる レコードや 金額が100のレコードと一致し、 2026 のような4桁の数字もその年の任意の日付に対応します。検索フィルターはビューの既存のフィルターの上に重ねられているため、ビューレベルの制約( statecode = 0 フィルターなど)は常に保持されます。
検索を無効にする
グリッド上の AllowSearch="false" を設定して検索ボックスを完全に隠します。これは、固定されたレコードの少数セットのみを含むグリッドや、外部でフィルタリングを行う場合(例えばカスタムツールバーを通じて)に有用です。
React
Blazor
<MainGrid tableName="contact" allowSearch={false} /> <MainGrid TableName="contact" AllowSearch="false" />
Excelへのエクスポート
グリッドのボタンに ExportGridButton を加えると、ユーザーが見るビューに一致するすべてのレコード(検索、並べ替え、グリッドのフィルター)をダウンロードします。画面上のページだけでなく、グリッドの Title (または表示)と日付の名前が付けられたExcelワークブックとして。グリッドの他のボタンと並び、それぞれ独自のラベル、アイコン、ツールチップを持ちます。ファイルの種類はその Format が選びます。今日はExcelだけです。上のグリッドにはExcelがあります。
React
Blazor
<MainGrid tableName="contact">
<ExportGridButton />
</MainGrid> <MainGrid TableName="contact">
<Buttons>
<ExportGridButton />
</Buttons>
</MainGrid>
ワークブックはグリッドの列をグリッドが示す順に保持し、同じヘッダーの下に、固定されたフィルタ可能なヘッダー行で管理します。数字、通貨の金額、日付は実際のExcelの数値なので、ソートと合計を行いますが、Excelが正確に保持できないもの、例えば1900年以前の日付や15桁を超える整数は、グリッドが表示するテキストとして書き込まれ、他のすべても同様です。テンプレートの列は除外されます。なぜなら、そのセルはテンプレートが描くものだからです。レコードはグリッドと同じセキュリティで読み込まれるため、エクスポート時にグリッドに表示できない行や値を保持することはなく、マスクされた列はそのマスクをファイルに持ち込みます。
輸出品が保持する記録はいくつありますか
1つのエクスポートは最大10,000件のレコードを保持できます。一致するレコードが増えた場合、ファイルに最初の10,000件が保持され、ユーザーにその旨が伝えられ、検索範囲を絞って残りの記録をエクスポートできます。制限はサーバー上で設定されているため、ブラウザがそれ以上請求することはできません。 GridExportOptionsで変更してください:
builder.Services.Configure<GridExportOptions>(options =>
options.MaxRecords = 25_000);
ページングモード
グリッドは PagingMode パラメータ(Blazor)/ pagingMode プロップ(React)を通じて2つのページング戦略をサポートしています。両モードは同じ基盤ビューであるFetchXML、ソート、検索を使い、行がユーザーに表示される方法が異なるだけです。
Paged (デフォルト) — ページサイズセレクターを備えたクラシックな 「前/次の フッター」です。短い結果セットや、ページ番号で飛び回ったり、URL内で深くリンクされたページを共有したい場合に最適です。
Virtualize — 無限巻物 。ページャーフッターは隠されており、ユーザーがレンダリングされた下部をスクロールするごとに行が積み重なり、次のページは自動的に取得されます。合計が利用可能になると、読み取り専用の「Showing 1-N of M」カウンターがページャーに代わります。ユーザーがページごとにナビゲートするのではなく、長いリストをスキャンするのに最適です。
グリッドのページングモードを設定してオプトインしてください:
React
Blazor
<MainGrid
tableName="contact"
pagingMode={PagingMode.Virtualize}
pageSize={20}
/> <MainGrid TableName="contact"
PagingMode="GridPagingMode.Virtualize"
DefaultItemsPerPage="25" />
ライブデモ — 仮想化モード メインデモと同じ contact グリッドですが、 PagingMode="GridPagingMode.Virtualize" (Blazor)/ pagingMode={PagingMode.Virtualize} (React)が使われ、チャンクサイズも小さくなっているので、スクロールでアキュムレータが使われます。ページャーフッターはなくなりました。下にスクロールして追加のページを引き寄せ、グリッド上部のカウンターが新たな行が次々と更新されるのを見てください。
Reactの例
ブレイザーの例
React TypeScript
Razor
誰でも下のグリッドで連絡先を確認できます。ログインして、自分の連絡先を作成、閲覧、更新してください。
トレードオフ
ページへのジャンプもありません。 仮想化モードは常に最初のページから始まり、前方に引き出します。消費者はもはやN ページにスキップできません。明確なページナビゲーションが必要なら、引き続きPaged。
ページは永続化されていません。 ユーザーのスクロール位置は離散的なページ概念ではないため、 PersistedStateQueryParameter 仮想化モードで p キーを省略しています。選択した閲覧、ソート、(オプトイン)検索は依然としてURLを往復します。
検索やソートは依然として機能しますが、 スクロールインしたアキュムレータがリセットされます。アクティブビューの変更、新しいソートの適用、検索ボックスへの入力で読み込まれた行がドロップされ、上から再取得されます。
ページャーやページサイズセレクターを隠します。 ページサイズセレクタは固定チャンクサイズに置き換えられます。 DefaultItemsPerPage (Blazor)/ pageSize (React)で初期値を設定し、スクロールトリガーページあたり何行取るかを制御します。
フルサイズモード
グリッドが親コンテナの全高を満たすように FullSize="true" 設定してください。これはグリッドがページの主要な内容である場合に有用です。
React
Blazor
<PageLayout>
<Body>
<MainGrid tableName="contact" fullSize />
</Body>
</PageLayout> <PageLayout>
<Body>
<MainGrid TableName="contact" FullSize="true" />
</Body>
</PageLayout>
持続するグリッド状態
PersistedStateQueryParameterをクエリパラメータ名(例:"gridState")に設定すると、グリッドはそのインタラクティブな状態をその名前の下の単一のURLパラメータにミラーリングします。ユーザー主導の変更—選択したビューの切り替え、ページング、ページサイズの変更、列ヘッダーのクリックによるソート、または(オプトインの)検索ボックスでの入力—は状態を再エンコードし、URLパラメータをそのまま置き換えます。パラメータ(ブックマーク、共有リンク、リフレッシュ)が存在した状態でページを開くと、グリッドは最初の読み込み時にパラメータを読み取り、キャプチャされた状態をすべて復元してからデータを取得します。
React
Blazor
<MainGrid tableName="contact"
persistedStateQueryParameter="gridState" /> <MainGrid TableName="contact"
PersistedStateQueryParameter="gridState" />
何が持続するのか
クエリパラメータは、状態ごとに1つの短い鍵を持つコンパクトなJSONオブジェクトをエンコードします。キーは意図的に略されており、ブックマークされたURLを短く保っています。自然なデフォルトに合致するフィールドは省略されるため、ソートも検索もないページ1のグリッドは、5つのフィールドすべてが入っているグリッドよりもはるかに小さな塊になります。
v — 選択したビューのGUID(小文字、ハイフン付き、括弧なし)。グリッドに設定された ViewIds / CustomViewDefinitions エントリのいずれかと一致します。
p — 1ベースのページ番号。ユーザーが1ページ目(デフォルト)にいる場合は省略されます。
ps — ページあたりの行数。ページのサイズドロップダウンでユーザーの最後の選択を反映します。グリッドの DefaultItemsPerPageと一致する場合は省略します。
s — 秩序立てられた一種の指令配列。各エントリには c (列の論理名)とオプションの d (降順は true に設定されています。昇順は無標識のデフォルトなので d 、その場合は省略されます)。空/未ソート状態はフィールドを完全に省略します。多列ソートは優先順位で保存されます。
q — 現在の検索ボックスのテキスト。グリッドが IncludeSearchInPersistedState="true" で設定されていて、かつボックスの値が空でない場合のみ含まれます。検索語は機密扱いになることがあるため(例:CRMの文脈での顧客名など)、デフォルトでオフにしています。
URLエンコーディング
状態はコンパクトなJSON(空白なし)としてシリアライズされ、クエリパラメータにURLでエンコードされます。連絡先ビューの3ページ目を、姓の順に並べ替え、「smith」を有効にして、以下のペイロードを往復で表示します。
{
"v": "28299c6f-ebc0-4206-9e11-a373d4c9891f",
"p": 3,
"ps": 25,
"s": [
{ "c": "lastname" },
{ "c": "createdon", "d": true }
],
"q": "smith"
}
URLエンコーディング後の実際のアドレスバー値は次のようになります(フレームワークはJSON文字列を書く前に encodeURIComponent を呼び出します):
/grids/main-grid?gridState=%7B%22v%22%3A%2228299c6f-ebc0-4206-9e11-a373d4c9891f%22%2C%22p%22%3A3%2C%22s%22%3A%5B%7B%22c%22%3A%22lastname%22%7D%5D%7D
デフォルト価値剥離
エンコーダはシリアライズ前に、自然なデフォルトに合致するフィールドを除去します。ページ1は p、空のソートリストは s、マークなしの昇順ソートは d、空の検索は qを落とします。ユーザーの操作なしに新たに読み込まれたグリッドは、 v と ps のみを含むブロブにエンコードされ、消費者が触れていない州のブックマークURLが増えないようにしています。
ブラウザ履歴の挙動
状態の変更はURLを history.replaceState で更新します — 新しいエントリーをバックスタックにプッシュするわけではありません。つまり、グリッドページから戻るボタンを押すと、前のソート/ページの組み合わせではなく、前の別個のページ(ユーザーのナビの原点)に戻るということです。このトレードオフは意図的で、単一のグリッドセッションで数十の状態変化が生じ、それぞれをナビゲーションエントリとして押し込むと、アプリの他の部分で戻るボタンが実質的に使えなくなります。
検索永続性の有効化
デフォルトでは検索テキストはURLから除外されているため、グリッドが敏感な用語でフィルタリングされていてもパラメータは安全に共有できます。 IncludeSearchInPersistedState="true" に現在の検索ボックス値を含めるように設定します(上記の q フィールドとして追加)。一度有効化されると、検索はブックマーク可能な状態の一部となり、ユーザーはURLをコピーでき、受信者は同じビュー、ページ、ソート、フィルターの組み合わせにたどり着きます。
React
Blazor
<MainGrid tableName="contact"
persistedStateQueryParameter="gridState"
includeSearchInPersistedState /> <MainGrid TableName="contact"
PersistedStateQueryParameter="gridState"
IncludeSearchInPersistedState="true" />
クロススタック互換性
エンコードされたJSON形状は、BlazorとReactのグリッド実装で同一であり、同じパラメータ名、同じキー(v / p / ps / s / q)、同じ値の意味論を持っています。一方のスタックで生成されたリンクはもう一方のスタックで消費可能であるため、両方のサーフェス(例:公開向けのReactポータルと内部のBlazor管理アプリの両方)を運営する組織は、各stackの翻訳層なしでグリッドURLを共有できます。
1ページに複数のグリッドを配置
同じページ上の2つのグリッドは異なる PersistedStateQueryParameter名を使わなければなりません。各グリッドは自分のパラメータのみを読み書きするため、同じ名前を再利用すると両方のグリッドが同じURLスロットを奪い合うことになります。最後に書き込みた方が勝ち、変更ごとにもう一方のグリッドが状態を失います。一般的な規則として、パラメータはグリッドの役割を名付ける(例:contactsState + accountsState)。
マルチテーブルグリッド
MainGridは、ViewIdsコレクションに複数のテーブルからのビューIDを含めることで、異なるテーブルからのビューを表示できます。ユーザーがビューを切り替えると、グリッドは自動的に正しいテーブルのデータを読み込みます。ナビゲーションボタンのOnClickコールバックを使って、選択したビューのテーブル名に基づいて動的にURLを設定します。
React
Blazor
<MainGrid
viewIds={viewIds}
customViewDefinitions={customViews}
defaultViewId={ALL_CONTACTS_VIEW_ID}
>
<GridButtons>
<NavigateNewRecordGridButton
url="/contacts/new"
onClick={(ctx) => {
switch (ctx.gridContext.selectedView?.tableName) {
case 'contact': ctx.url = '/contacts/new'; break;
case 'account': ctx.url = '/accounts/new'; break;
default: throw new Error('不明表');
}
}}
/>
<NavigateOpenRecordGridButton
urlFor={(record, ctx) => {
switch (ctx.selectedView?.tableName) {
case 'contact': return `/contacts/edit?id=${record.id}`;
case 'account': return `/accounts/edit?id=${record.id}`;
default: throw new Error('不明表');
}
}}
/>
</GridButtons>
</MainGrid> <MainGrid ViewIds="_viewIds"
CustomViewDefinitions="_customViews"
DefaultViewId="@(new Guid(AllContactsViewId))">
<Buttons>
<NavigateNewRecordGridButton OnClick="OnNewClick" />
<NavigateOpenRecordGridButton OnClick="OnEditClick" />
</Buttons>
</MainGrid>
@code {
private async Task OnNewClick(NavigateGridButtonContext ctx)
{
ctx.Url = ctx.GridContext.SelectedView.TableName switch
{
"contact" => "/contacts/new",
"account" => "/accounts/new",
_ => throw new Exception("不明表"),
};
}
private async Task OnEditClick(NavigateGridButtonContext ctx)
{
ctx.Url = ctx.GridContext.SelectedView.TableName switch
{
"contact" => "/contacts/edit?id={0}",
"account" => "/accounts/edit?id={0}",
_ => throw new Exception("不明表"),
};
}
}
反応してください
ブレイザー
MainGrid クラス パラメータ
AllowChangingPageSizebool True
もし当ては まる場合、ユーザーはページごとに表示されるアイテム数を変更できます。
AllowDownloadForFileColumnsbool True
true(デフォルト )の場合、 グリッドは ファイルおよび画像の列セルの後縁。クリックするとファイルが ユーザーのブラウザ。アイコンを抑制するために false に設定してください—例えば読み取り専用時などです ファイルのエクスポートが許可されていないグリッドの監査。
AllowEditbool False
ユーザーがグリッドのインライン編集をオンにするオプションがあるべきです。
AllowNavigateOnPrimaryNameClickbool True
true (デフォルト)でグリッドに「編集」ボタンが登録されている場合(a GridButton with IsOpenRecordButton =true )、レンダリングするセル テーブルのプライマリーネーム列はハイパーリンクになります。クリックしても同じことが発信されます 行ごとにダブルクリックで呼び出す機能があり、ユーザーが編集にジャンプできるようになっています フォーム(または登録ボタンに応じてナビゲートされた編集URL)を先に使わない 行を選ぶ。ハイパーリンクを抑制するためにfalse に設定し、 プライマリーネームセルをプレーンテキストとして使うことができます。編集ボタンが登録されていないと効果はありません。
AllowNavigateOnRowDoubleClickbool True
true (デフォルト)でグリッドに「編集」ボタンが登録されている場合(a GridButton with IsOpenRecordButton=true )、行をダブルクリックします そのボタンのOnClick を呼び出して行の記録を開けます 編集ダイアログか編集URLへのアクセス、どちらかのボタンが対応しているのです。設定 false はダブルクリックハンドラを抑制するために使われます。編集ボタンがなければ効果はありません 登録されています。
AllowPreviewForFileColumnsbool True
true (デフォルト )の場合、グリッドは行ごとに「目」プレビューアイコンをレンダリングします。 ファイルおよび画像の列セルの後縁で、その内容をインラインでレンダリング可能です (画像、PDF、プレーンテキスト)アイコンを抑制するために false に設定します — 例えば 列がプレビューのエントリーとして使われるべきではないグリッド。
AllowSearchbool True
ユーザーがグリッドを検索することが許されるべきか。
BorderVisiblebool True
グリッドの周囲に見える境界線が描画されるかどうかを制御します。
ButtonsRenderFragment?
オプションのレンダリングフラグメントは、グリッド上に表示されるボタンツールバーを定義するためのものです。
ColumnsRenderFragment?
消費者宣言された任意の Components.GridColumns フラグメント Components.GridColumn 子どもたち。供給されると、グリッドは モードを置き換え る:宣言された列のみがレンダリングされます(宣言された FetchXMLの射影はそれに合わせて書き換えられ、 Underlying Viewの列リストは無視されます。 null グリッドはデフォルトの動作のままにします(から自動生成の列 ビューの解決された列集合)。
CustomViewDefinitionsList<GridViewDefinition>?
ドロップダウンに表示するカスタムビュー。
DataSourceViewDataSource?
オプションで共有
Data.ViewDataSource。設定すると、グリッドは データソースから行数+総カウントを読み取る代わりに 独自の
Threading.CancellationToken)を発行すること コール — 同じデータソースが兄弟姉妹を駆動することもあります
<DataverseChart> または2つ目のグリッドで、すべてが使えます ページ分け/フィルター/検索を一度の往復でまとめて行えます。
単独使用( GridBase.DataSourceなし)は 既存の内部状態機械 — グリッドはFetchXMLを構成します IPowerPortalsProService 経由で直接フェッチします。 データソースが所有していないもの: グリッドごとのUIです 状態(選択された行、保留中の行が作成される/更新/削除、 列幅)。これらはグリッド局所のまま、2つのグリッドが1つを共有する データソースは依然として独立した選択とグリッドごとの選択を持つことができます 編集保留中。 ViewDataSource.Highlight が設定された場合(例:aを通じて) クロスフィルターの「ハイライト」モードでチャートスライスクリック)、行の ハイライトされた列の値が視覚的に一致しない CSSクラスによってミュートされます。行データ+選択は次の通りです。 影響はありません(ソフトクロスフィルターは純粋にスタイリングです)。 DefaultItemsPerPageint 50
ページ上で読み込むデフォルトのレコード数。
DefaultViewIdGuid?
グリッドが初期ロード時に表示されるはずのビューのID。
Editablebool False
グリッドのインライン編集は有効ですか?
FiltersIReadOnlyList<GridFilterBase>?
追加のサーバー側フィルターと、解決されたビューにマージした ページングやソート、検索の前にfetchXMLを使いましょう。転送先へ
Query.IFetchXmlQueryComposerFetchXmlQueryOptions.Filters、 したがって、各エントリはランタイムタイプ(例:
Models.RelationshipFilter ANDは関係リンクエンティティをマージします)。 典型的な使い方:
LinkExistingRecordGridButton ピッカーが
Models.RelationshipFilterRelationshipFilterMode.ExcludeExistingRecordsもう― リンクされたレコードはM2Mの検索ダイアログからは隠されています。
SubGrid 自身の内部と加算的に結合します 関係フィルター(これはFetchXMLに直接組み込まれています) 作曲家のフィルター枠を通るのではなく)— 両方とも終わります 同じクエリで上にいる。 FullSizebool False
この場合 、グリッドは固定された最小高さではなく、利用可能な垂直空間をすべて埋めるように拡大します。
HidePagingbool False
ページサイズやページングコンポーネントを強制的に非表示にしてください。 アイテム数が分かっていて、ページサイズがアイテム数より大きいものに設定されている場合のみこれを行います。
IncludeSearchInPersistedStatebool False
真の場合 、アクティブ検索テキストは永続化されたものに含まれます 状態URLパラメータ(q フィールド下)。デフォルトはfalse に設定されます — 検索語は敏感で、ブラウザ履歴に蓄積されることがあります。 HTTPリファラーにリークするため、グリッドはURLからそれらを排除します。ただし 消費者は明示的にオプトインします。効果はありません GridBase.PersistedStateQueryParameterはまだ設定されていません。
IsDirtybool False
グリッドに保存されていない作成、更新、削除の未処理があるかどうかを示します。
LoadedRecordsIEnumerable<TableRecord>
現在グリッドに表示されている記録(最新の結果ページ)。 「表示されたすべてのもの」に対応する必要があるツールバーコマンド、例えばバルク用に設計されています ダウンロードボタン。ページにまたがらない。ページ単位の一括操作は 代わりに自分のページなしの取ってこい。
MaxHeightstring?
グリッドコントロールが拡張すべき最大高さ。
MinHeightstring? 300px
グリッド制御が占有すべき最低高さ。
ModeGridMode
RecordSelection
グリッドの動作モード(デフォルトのインタラクションモードやレコード選択モードなど)を設定します。
PageSizesIEnumerable<int>
グリッド用の利用可能なページサイズのコレクション。
PagingModeGridPagingMode
Paged
グリッドが従来のページング方式か無限スクロール仮想化かを決定します。
PersistedRowsSnapshotPersistedGridRowsSnapshot?
サーバープリレンダー→レンダリングされた行のページのインタラクティブなハンドオフです。フレームワーク プリレンダリングの最後にこの性質を自動永続化し、その前に再ハイドレートします GridBase.OnInitializedAsync インタラクティブ側に位置しているので、データフェッチは 最初のインタラクティブレンダリングを飛ばしました。フレームワークによってレンダーツリーの位置でキーされます。 消費時の場 PersistedGridRowsSnapshot.ViewId がチェックされます 時間がかかるので、別のビューで再レンダリングすると、古くなった行は破棄されます。パブリック・トゥ・ フレームワークの要件 — [PersistentState] はパブリックプロパティを以下でのみ認識します。 内省――しかし外部に設定する意図はありません。
PersistedStateQueryParameterstring?
グリッドのインタラクティブなメッセージを永続させるためのURLクエリ文字列パラメータの名前 州から。設定すると、グリッドは初期負荷時にこのパラメータを読み取り、 アクティブなビュー、ページ番号、ページサイズをシードし、そこからソートします。 その後のユーザー操作(表示ピック、ページ変更、ヘッダーソートなど) 新しい状態を Components.NavigationManagerで書き返す 置換-状態経路。パーシステンスはページリフレッシュやブックマークによって存続します。
SelectedRecordsIEnumerable<TableRecord>
現在グリッドで選ばれている記録。
SelectFromEntireRowbool True
行 のどこかをクリックすると選択できます。false の場合は、チェックボックスのみが行を選択します。
SelectModeDataGridSelectMode
Multiple
グリッドが単一行選択か複数行選択を許可するかを制御します。
TableNamestring?
パブリックビューを読み込むべきテーブルの論理名。 GridBase.DefaultViewId または GridBase.ViewIdsの数値が指定されていない場合にのみ適用されます。
Titlestring?
表示のドロップダウンが表示されないときに表示する名前。
TransformViewAsyncFunc<GridViewDefinition, Task<GridViewDefinition>>?
ビューが読み込まれた直後、グリッドが使用する前に実行されるオプションのコールバック それはカラムやクエリを作成するためのものでした。修正 Models.GridViewDefinition を に戻す グリッドが最終的にレンダリングするものを変換するなど、特定の列を確保するなど ビュー自身の構成に関わらず常に存在します。非同期で、発信者は 何をするか決める際には、メタデータキャッシュ、サービス、その他の非同期リソースを参照してください 含める。
ViewIdsIEnumerable<Guid>?
ビュードロップダウンでグリッドが制限すべきビューのIDリスト。
ViewSortViewSort
NameAscending
ビューのドロップダウンでビューの順番を並べ替えてください。
名称:
AllowChangingPageSize
種類:
bool
デフォルト:
True
概要:
もし当ては まる場合、ユーザーはページごとに表示されるアイテム数を変更できます。
名称:
AllowDownloadForFileColumns
種類:
bool
デフォルト:
True
概要:
true(デフォルト )の場合、 グリッドは ファイルおよび画像の列セルの後縁。クリックするとファイルが ユーザーのブラウザ。アイコンを抑制するために false に設定してください—例えば読み取り専用時などです ファイルのエクスポートが許可されていないグリッドの監査。
名称:
AllowEdit
種類:
bool
デフォルト:
False
概要:
ユーザーがグリッドのインライン編集をオンにするオプションがあるべきです。
名称:
AllowNavigateOnPrimaryNameClick
種類:
bool
デフォルト:
True
概要:
true (デフォルト)でグリッドに「編集」ボタンが登録されている場合(a GridButton with IsOpenRecordButton =true )、レンダリングするセル テーブルのプライマリーネーム列はハイパーリンクになります。クリックしても同じことが発信されます 行ごとにダブルクリックで呼び出す機能があり、ユーザーが編集にジャンプできるようになっています フォーム(または登録ボタンに応じてナビゲートされた編集URL)を先に使わない 行を選ぶ。ハイパーリンクを抑制するためにfalse に設定し、 プライマリーネームセルをプレーンテキストとして使うことができます。編集ボタンが登録されていないと効果はありません。
名称:
AllowNavigateOnRowDoubleClick
種類:
bool
デフォルト:
True
概要:
true (デフォルト)でグリッドに「編集」ボタンが登録されている場合(a GridButton with IsOpenRecordButton=true )、行をダブルクリックします そのボタンのOnClick を呼び出して行の記録を開けます 編集ダイアログか編集URLへのアクセス、どちらかのボタンが対応しているのです。設定 false はダブルクリックハンドラを抑制するために使われます。編集ボタンがなければ効果はありません 登録されています。
名称:
AllowPreviewForFileColumns
種類:
bool
デフォルト:
True
概要:
true (デフォルト )の場合、グリッドは行ごとに「目」プレビューアイコンをレンダリングします。 ファイルおよび画像の列セルの後縁で、その内容をインラインでレンダリング可能です (画像、PDF、プレーンテキスト)アイコンを抑制するために false に設定します — 例えば 列がプレビューのエントリーとして使われるべきではないグリッド。
名称:
AllowSearch
種類:
bool
デフォルト:
True
概要:
ユーザーがグリッドを検索することが許されるべきか。
名称:
BorderVisible
種類:
bool
デフォルト:
True
概要:
グリッドの周囲に見える境界線が描画されるかどうかを制御します。
名称:
Buttons
種類:
RenderFragment?
概要:
オプションのレンダリングフラグメントは、グリッド上に表示されるボタンツールバーを定義するためのものです。
名称:
Columns
種類:
RenderFragment?
概要:
消費者宣言された任意の Components.GridColumns フラグメント Components.GridColumn 子どもたち。供給されると、グリッドは モードを置き換え る:宣言された列のみがレンダリングされます(宣言された FetchXMLの射影はそれに合わせて書き換えられ、 Underlying Viewの列リストは無視されます。 null グリッドはデフォルトの動作のままにします(から自動生成の列 ビューの解決された列集合)。
名称:
CustomViewDefinitions
種類:
List<GridViewDefinition>?
概要:
ドロップダウンに表示するカスタムビュー。
名称:
DataSource
種類:
ViewDataSource?
概要:
オプションで共有 Data.ViewDataSource。設定すると、グリッドは データソースから行数+総カウントを読み取る代わりに 独自の Threading.CancellationToken)を発行すること コール — 同じデータソースが兄弟姉妹を駆動することもあります <DataverseChart> または2つ目のグリッドで、すべてが使えます ページ分け/フィルター/検索を一度の往復でまとめて行えます。 単独使用( GridBase.DataSourceなし)は 既存の内部状態機械 — グリッドはFetchXMLを構成します IPowerPortalsProService 経由で直接フェッチします。 データソースが所有していないもの: グリッドごとのUIです 状態(選択された行、保留中の行が作成される/更新/削除、 列幅)。これらはグリッド局所のまま、2つのグリッドが1つを共有する データソースは依然として独立した選択とグリッドごとの選択を持つことができます 編集保留中。 ViewDataSource.Highlight が設定された場合(例:aを通じて) クロスフィルターの「ハイライト」モードでチャートスライスクリック)、行の ハイライトされた列の値が視覚的に一致しない CSSクラスによってミュートされます。行データ+選択は次の通りです。 影響はありません(ソフトクロスフィルターは純粋にスタイリングです)。 名称:
DefaultItemsPerPage
種類:
int
デフォルト:
50
概要:
ページ上で読み込むデフォルトのレコード数。
名称:
DefaultViewId
種類:
Guid?
概要:
グリッドが初期ロード時に表示されるはずのビューのID。
名称:
Editable
種類:
bool
デフォルト:
False
概要:
グリッドのインライン編集は有効ですか?
名称:
Filters
種類:
IReadOnlyList<GridFilterBase>?
概要:
追加のサーバー側フィルターと、解決されたビューにマージした ページングやソート、検索の前にfetchXMLを使いましょう。転送先へ Query.IFetchXmlQueryComposerFetchXmlQueryOptions.Filters、 したがって、各エントリはランタイムタイプ(例: Models.RelationshipFilter ANDは関係リンクエンティティをマージします)。 典型的な使い方:LinkExistingRecordGridButton ピッカーが Models.RelationshipFilterRelationshipFilterMode.ExcludeExistingRecordsもう― リンクされたレコードはM2Mの検索ダイアログからは隠されています。 SubGrid 自身の内部と加算的に結合します 関係フィルター(これはFetchXMLに直接組み込まれています) 作曲家のフィルター枠を通るのではなく)— 両方とも終わります 同じクエリで上にいる。 名称:
FullSize
種類:
bool
デフォルト:
False
概要:
この場合 、グリッドは固定された最小高さではなく、利用可能な垂直空間をすべて埋めるように拡大します。
名称:
HidePaging
種類:
bool
デフォルト:
False
概要:
ページサイズやページングコンポーネントを強制的に非表示にしてください。 アイテム数が分かっていて、ページサイズがアイテム数より大きいものに設定されている場合のみこれを行います。
名称:
IncludeSearchInPersistedState
種類:
bool
デフォルト:
False
概要:
真の場合 、アクティブ検索テキストは永続化されたものに含まれます 状態URLパラメータ(q フィールド下)。デフォルトはfalse に設定されます — 検索語は敏感で、ブラウザ履歴に蓄積されることがあります。 HTTPリファラーにリークするため、グリッドはURLからそれらを排除します。ただし 消費者は明示的にオプトインします。効果はありません GridBase.PersistedStateQueryParameterはまだ設定されていません。
名称:
IsDirty
種類:
bool
デフォルト:
False
概要:
グリッドに保存されていない作成、更新、削除の未処理があるかどうかを示します。
名称:
LoadedRecords
種類:
IEnumerable<TableRecord>
概要:
現在グリッドに表示されている記録(最新の結果ページ)。 「表示されたすべてのもの」に対応する必要があるツールバーコマンド、例えばバルク用に設計されています ダウンロードボタン。ページにまたがらない。ページ単位の一括操作は 代わりに自分のページなしの取ってこい。
名称:
MaxHeight
種類:
string?
概要:
グリッドコントロールが拡張すべき最大高さ。
名称:
MinHeight
種類:
string?
デフォルト:
300px
概要:
グリッド制御が占有すべき最低高さ。
名称:
Mode
種類:
GridMode
デフォルト:
RecordSelection
概要:
グリッドの動作モード(デフォルトのインタラクションモードやレコード選択モードなど)を設定します。
名称:
PageSizes
種類:
IEnumerable<int>
概要:
グリッド用の利用可能なページサイズのコレクション。
名称:
PagingMode
種類:
GridPagingMode
デフォルト:
Paged
概要:
グリッドが従来のページング方式か無限スクロール仮想化かを決定します。
名称:
PersistedRowsSnapshot
種類:
PersistedGridRowsSnapshot?
概要:
サーバープリレンダー→レンダリングされた行のページのインタラクティブなハンドオフです。フレームワーク プリレンダリングの最後にこの性質を自動永続化し、その前に再ハイドレートします GridBase.OnInitializedAsync インタラクティブ側に位置しているので、データフェッチは 最初のインタラクティブレンダリングを飛ばしました。フレームワークによってレンダーツリーの位置でキーされます。 消費時の場 PersistedGridRowsSnapshot.ViewId がチェックされます 時間がかかるので、別のビューで再レンダリングすると、古くなった行は破棄されます。パブリック・トゥ・ フレームワークの要件 — [PersistentState] はパブリックプロパティを以下でのみ認識します。 内省――しかし外部に設定する意図はありません。
名称:
PersistedStateQueryParameter
種類:
string?
概要:
グリッドのインタラクティブなメッセージを永続させるためのURLクエリ文字列パラメータの名前 州から。設定すると、グリッドは初期負荷時にこのパラメータを読み取り、 アクティブなビュー、ページ番号、ページサイズをシードし、そこからソートします。 その後のユーザー操作(表示ピック、ページ変更、ヘッダーソートなど) 新しい状態を Components.NavigationManagerで書き返す 置換-状態経路。パーシステンスはページリフレッシュやブックマークによって存続します。
名称:
SelectedRecords
種類:
IEnumerable<TableRecord>
概要:
現在グリッドで選ばれている記録。
名称:
SelectFromEntireRow
種類:
bool
デフォルト:
True
概要:
行 のどこかをクリックすると選択できます。false の場合は、チェックボックスのみが行を選択します。
名称:
SelectMode
種類:
DataGridSelectMode
デフォルト:
Multiple
概要:
グリッドが単一行選択か複数行選択を許可するかを制御します。
名称:
TableName
種類:
string?
概要:
パブリックビューを読み込むべきテーブルの論理名。 GridBase.DefaultViewId または GridBase.ViewIdsの数値が指定されていない場合にのみ適用されます。
名称:
Title
種類:
string?
概要:
表示のドロップダウンが表示されないときに表示する名前。
名称:
TransformViewAsync
種類:
Func<GridViewDefinition, Task<GridViewDefinition>>?
概要:
ビューが読み込まれた直後、グリッドが使用する前に実行されるオプションのコールバック それはカラムやクエリを作成するためのものでした。修正 Models.GridViewDefinition を に戻す グリッドが最終的にレンダリングするものを変換するなど、特定の列を確保するなど ビュー自身の構成に関わらず常に存在します。非同期で、発信者は 何をするか決める際には、メタデータキャッシュ、サービス、その他の非同期リソースを参照してください 含める。
名称:
ViewIds
種類:
IEnumerable<Guid>?
概要:
ビュードロップダウンでグリッドが制限すべきビューのIDリスト。
名称:
ViewSort
種類:
ViewSort
デフォルト:
NameAscending
概要:
ビューのドロップダウンでビューの順番を並べ替えてください。
イベント
EditableChangedEventCallback<bool> インライン編集の状態が変わったときにコールバックが呼び出されます。
SelectedRecordsChangedEventCallback<IEnumerable<TableRecord>> 選択したレコード収集が変更された際にコールバックが呼び出されます。
名称:
EditableChanged
種類:
EventCallback<bool>
概要:
インライン編集の状態が変わったときにコールバックが呼び出されます。
名称:
SelectedRecordsChanged
種類:
EventCallback<IEnumerable<TableRecord>>
概要:
選択したレコード収集が変更された際にコールバックが呼び出されます。
方法
ClearSelectionAsyncTask 現在選択されているすべての行をクリアします。
OpenFileDownloadAsyncTableRecord record string columnName Task ファイル/画像列のバイトを record に取得し、ストリーミングします ユーザーのブラウザにダウンロードとして送り出します。ファイル内の行ごとのダウンロードアイコンで呼び出されます および画像セル。
OpenFilePreviewAsyncTableRecord record string columnName Task ファイル/画像の列のインラインプレビューダイアログを開く columnNamerecord。ファイル/画像セル内の行ごとのプレビューアイコンによって呼び出されます また、構成要素の作成にも利用可能(例:ラッピング上のツールバーボタンなど) グリッド)をプログラム的なエントリーポイントとして求めています。
RefreshAsyncbool forceRefresh Task グリッドに提供されたデータソースから現在のデータを再取得しレンダリングするよう指示します。
Validatebool グリッド内の編集可能なすべての行を検証します。
名称:
ClearSelectionAsync
種類:
Task
概要:
現在選択されているすべての行をクリアします。
名称:
OpenFileDownloadAsync
パラメータ:
TableRecord record string columnName
種類:
Task
概要:
ファイル/画像列のバイトを record に取得し、ストリーミングします ユーザーのブラウザにダウンロードとして送り出します。ファイル内の行ごとのダウンロードアイコンで呼び出されます および画像セル。
名称:
OpenFilePreviewAsync
パラメータ:
TableRecord record string columnName
種類:
Task
概要:
ファイル/画像の列のインラインプレビューダイアログを開く columnNamerecord。ファイル/画像セル内の行ごとのプレビューアイコンによって呼び出されます また、構成要素の作成にも利用可能(例:ラッピング上のツールバーボタンなど) グリッド)をプログラム的なエントリーポイントとして求めています。
名称:
RefreshAsync
パラメータ:
bool forceRefresh
種類:
Task
概要:
グリッドに提供されたデータソースから現在のデータを再取得しレンダリングするよう指示します。
名称:
Validate
種類:
bool
概要:
グリッド内の編集可能なすべての行を検証します。
GridViewDefinition クラス 性質
ColumnsList<ViewColumn>
グリッドに表示される列、論理名やピクセル幅も含めて。
DisplayNamestring?
このビューの表示名はオプションです。設定すると、これはデフォルトのラベルとして使われます。 「選択機能のドロップダウンを見る」ローカライゼーション項目は テーブル。{TableName}.views。{Id}.label が存在する場合は優先されます。
FetchXmlstring
このビューでどのレコードや列が取得されるかを定義するFetchXMLクエリです。
TableNamestring
このビューがクエリするDataverseテーブルの論理名。
名称:
Columns
種類:
List<ViewColumn>
概要:
グリッドに表示される列、論理名やピクセル幅も含めて。
名称:
DisplayName
種類:
string?
概要:
このビューの表示名はオプションです。設定すると、これはデフォルトのラベルとして使われます。 「選択機能のドロップダウンを見る」ローカライゼーション項目は テーブル。{TableName}.views。{Id}.label が存在する場合は優先されます。
名称:
FetchXml
種類:
string
概要:
このビューでどのレコードや列が取得されるかを定義するFetchXMLクエリです。
名称:
TableName
種類:
string
概要:
このビューがクエリするDataverseテーブルの論理名。