Blazor Tree Grid 行の追加
IgbTreeGrid
はインライン行追加や Blazor CRUD 操作のための強力な API を通して便利なデータ操作方法を提供します。グリッドのテンプレートで編集アクションが有効になっている IgbActionStrip
コンポーネントを追加し、ホバーして提供されたボタンを使用するか、ALT + + を押して、行追加 UI を生成するか、ALT + SHIFT + + を押して、選択した行に子を追加するための UI を生成します。
Blazor Tree Grid 行の追加の例
行追加の使用
次に、バインドしたデータ ソースに IgbTreeGrid
を定義をして RowEditable
を true に設定し、編集アクションを有効にした IgbActionStrip
コンポーネントを定義します。AddRow
入力は、行追加 UI を生成するボタンの表示状態を制御します。
<IgbTreeGrid AutoGenerate="false" Id="treegrid" PrimaryKey="ID" ForeignKey="ParentID" RowEditable="true">
<IgbColumn Field="Name" Header="Name" DataType="GridColumnDataType.String"></IgbColumn>
<IgbColumn Field="Title" Header="Title" DataType="GridColumnDataType.String"></IgbColumn>
<IgbColumn Field="HireDate" Header="Hire Date" DataType="GridColumnDataType.Date"></IgbColumn>
<IgbColumn Field="OnPTO" Header="On PTO" DataType="GridColumnDataType.Boolean"></IgbColumn>
<IgbActionStrip>
<IgbGridEditingActions AddRow="true"></IgbGridEditingActions>
</IgbActionStrip>
</IgbTreeGrid>
注: プライマリ キーは行追加操作で必須です。
注: プライマリ キーを除くすべての列は、デフォルトで行追加 UI で編集可能です。特定の列の編集を無効にする場合、
Editable
列の入力を false に設定します。
注: [行の追加] のボタンの表示状態を制御する
IgbGridEditingActions
入力は、アクション ストリップ コンテキスト (タイプIgbRowType
) を使用して、ボタンが表示するレコードを調整できます。
内部の BaseTransactionService
は IgbTreeGrid
に自動的に提供されます。行の状態が送信またはキャンセルされるまで、保留中のセルの変更を保持します。
プログラムで行の追加を開始
IgbTreeGrid
を使用すると、2 つの異なるパブリック メソッドを使用して、プログラムで行追加 UI を生成できます。1 つは UI が生成される行を指定するための行 ID を受け入れ、もう 1 つはインデックスによって機能します。これらのメソッドを使用して、現在のデータ ビュー内の任意の場所に UI を生成できます。ページの変更や、たとえばフィルターで除外された行の指定はサポートされていません。
@code {
await this.treeGrid.BeginAddRowByIdAsync('ALFKI', true); // Spawns the add row UI to add a child for the row with PK 'ALFKI'
await this.treeGrid.BeginAddRowByIdAsync(null, false); // Spawns the add row UI as the first record
}
BeginAddRowByIndex
メソッドも同様に機能しますが、コンテキストとして使用する行はインデックスによって指定されます。
@code {
await this.treeGrid.BeginAddRowByIndexAsync(10, true); // Spawns the add row UI to add a child for the row at index 10
await this.treeGrid.BeginAddRowByIndexAsync(0); // Spawns the add row UI as the first record
}
位置
行追加 UI のデフォルト位置は、エンド ユーザーが [行の追加] ボタンをクリックした行の下にあります。
IgbTreeGrid
がスクロールして、行追加 UI が自動的に完全に表示されます。行追加 UI のオーバーレイは、スクロール中もその位置を維持します。
動作
行追加 UI は、エンド ユーザーに整合性のある編集エクスペリエンスを提供するように設計されているため、行編集 UI と同じ動作をします。詳細については、Tree Grid 行の編集のトピックを参照してください。
行追加 UI を介して新しい行が追加された後、その位置や表示状態は、IgbTreeGrid
のソート、フィルタリングおよびグループ化の状態によって決定されます。これらの状態のいずれも適用されていない IgbTreeGrid
では、最後のレコードとして表示されます。スナックバーが短時間表示され、IgbTreeGrid
が表示されていない場合にはエンド ユーザーがコントロールの位置までスクロールするためのボタンが含まれています。
キーボード ナビゲーション
- ALT + + - 行を追加するために編集モードに入ります。
- ALT + SHIFT + + - 子を追加するために編集モードに入ります。
ESC は変更を送信せずに行追加モードを終了します。
TAB - 行の編集可能なセルから次のセルへフォーカスを移動、右端の編集可能なセルから [キャンセル] と [完了] ボタンへ移動します。[完了] ボタンからのナビゲーションは現在の編集行内で編集可能なセルへ移動します。
機能の統合
IgbTreeGrid
のデータ ビューが変更されると、行追加の操作は停止します。エンド ユーザーが行った変更はすべて送信されます。データ ビューを変更する操作には、ソート、グループ化、フィルタリング、ページングなどが含まれますが、これらに限定されません。行追加の操作が終了すると、集計が更新されます。同じことが、ソート、フィルタリングなど、他のデータ ビューに依存する機能にも当てはまります。
行追加オーバーレイのカスタマイズ
テキストのカスタマイズ
行追加オーバーレイのテキストのカスタマイズは、RowAddTextDirective
を使用して可能です。
<IgbTreeGrid Data="data" PrimaryKey="ProductID" AutoGenerate="false" RowEditable="true" RowAddTextTemplate="addTextTemplate">
</IgbTreeGrid>
@code {
private RenderFragment<IgbGridEmptyTemplateContext> addTextTemplate = (context) =>
{
return @<span>Adding Row</span>;
};
}
ボタンのカスタマイズ
行編集オーバーレイのボタンをカスタマイズするには、RowEditActions
テンプレートを使用します。
<IgbTreeGrid Data="data" PrimaryKey="ProductID" AutoGenerate="false" RowEditable="true" RowEditActionsTemplateScript="rowEditActionsTemplate">
</IgbTreeGrid>
//In JavaScript:
igRegisterScript("rowEditActionsTemplate", (endRowEdit) => {
var html = window.igTemplating.html;
return html`<div class="row-actions">
<button @click="${evt => endRowEdit.implicit(false, evt)}">Cancel</button>
<button @click="${evt => endRowEdit.implicit(true, evt)}">Apply</button>
</div>`
}, false);
注:
RowEditActions
テンプレートを使用すると、オーバーレイ ボタンの編集と追加の両方の編集アクションが変更されます。
スタイル設定
行追加 UI は IgbActionStrip
編集操作のボタン、編集エディター、オーバーレイ、エンドユーザーが新しく追加された行にスクロールできるスナックバーが構成されます。これらのコンポーネントのスタイル設定には、それぞれのトピックのガイドを参照してください。
API リファレンス
RowEditable
RowEditEnter
RowEdit
RowEditDone
RowEditCancel
EndEdit
PrimaryKey
IgbTreeGrid
その他のリソース
コミュニティに参加して新しいアイデアをご提案ください。