React Hierarchical Grid 行の追加
React Hierarchical Grid の Ignite UI for React 行追加機能を使用すると、ユーザーは別のフォームやページに移動することなく、新しいデータ レコードを入力して送信できます。IgrHierarchicalGrid
を使用すると、ユーザーはインライン行追加と CRUD 操作用の強力な API を通じてデータを操作できます。
グリッドのテンプレートで編集操作が有効になっている IgrActionStrip
コンポーネントを追加します。その後、行にカーソルを置き、提供されたボタンを使用します。最後に ALT + + を押して、行追加 UI を表示します。
React Hierarchical Grid 行の追加の例
行追加の使用
次に、バインドしたデータ ソースに IgrHierarchicalGrid
を定義をして rowEditable
を true に設定し、編集アクションを有効にした IgrActionStrip
コンポーネントを定義します。AddRow
入力は、行追加 UI を生成するボタンの表示状態を制御します。
<IgrHierarchicalGrid
autoGenerate="false"
data={this.singersData}
id="hGrid"
primaryKey="ID"
rowEditable="true"
ref={this.hierarchicalGrid1Ref}>
<IgrActionStrip>
<IgrGridEditingActions
addRow="true">
</IgrGridEditingActions>
</IgrActionStrip>
<IgrColumn
field="Artist"
header="Artist"
dataType="String"
resizable="true">
</IgrColumn>
<IgrColumn
field="Debut"
header="Debut"
dataType="Number"
minWidth="88px"
maxWidth="230px"
resizable="true">
</IgrColumn>
<IgrColumn
field="GrammyNominations"
header="Grammy Nominations"
dataType="String"
resizable="true">
</IgrColumn>
<IgrColumn
field="GrammyAwards"
header="Grammy Awards"
dataType="String"
resizable="true">
</IgrColumn>
<IgrRowIsland
childDataKey="Albums"
autoGenerate="false">
<IgrColumn
field="Album"
header="Album"
dataType="String"
resizable="true">
</IgrColumn>
<IgrColumn
field="LaunchDate"
header="Launch Date"
dataType="Date"
resizable="true">
</IgrColumn>
<IgrColumn
field="BillboardReview"
header="Billboard Review"
dataType="String"
resizable="true">
</IgrColumn>
<IgrColumn
field="USBillboard200"
header="US Billboard 200"
dataType="String"
resizable="true">
</IgrColumn>
<IgrRowIsland
childDataKey="Songs"
autoGenerate="false">
<IgrActionStrip>
<IgrGridEditingActions
addRow="true">
</IgrGridEditingActions>
</IgrActionStrip>
<IgrColumn
field="Number"
header="No."
dataType="String"
resizable="true">
</IgrColumn>
<IgrColumn
field="Title"
header="Title"
dataType="String"
resizable="true">
</IgrColumn>
<IgrColumn
field="Released"
header="Released"
dataType="String"
resizable="true">
</IgrColumn>
<IgrColumn
field="Genre"
header="Genre"
dataType="String"
resizable="true">
</IgrColumn>
</IgrRowIsland>
</IgrRowIsland>
<IgrRowIsland
childDataKey="Tours"
autoGenerate="false">
<IgrActionStrip>
<IgrGridEditingActions
addRow="true">
</IgrGridEditingActions>
</IgrActionStrip>
<IgrColumn
field="Tour"
header="Tour"
dataType="String"
resizable="true">
</IgrColumn>
<IgrColumn
field="StartedOn"
header="Started on"
dataType="String"
resizable="true">
</IgrColumn>
<IgrColumn
field="Location"
header="Location"
dataType="String"
resizable="true">
</IgrColumn>
<IgrColumn
field="Headliner"
header="Headliner"
dataType="String"
resizable="true">
</IgrColumn>
</IgrRowIsland>
</IgrHierarchicalGrid>
注: プライマリ キーは行追加操作で必須です。
注: プライマリ キーを除くすべての列は、デフォルトで行追加 UI で編集可能です。特定の列の編集を無効にする場合、
editable
列の入力を false に設定します。
注: [行の追加] のボタンの表示状態を制御する
IgrGridEditingActions
入力は、アクション ストリップ コンテキスト (タイプIgrRowType
を使用して、ボタンが表示するレコードを調整できます。
内部の BaseTransactionService
は IgrHierarchicalGrid
に自動的に提供されます。行の状態が送信またはキャンセルされるまで、保留中のセルの変更を保持します。
プログラムで行の追加を開始
IgrHierarchicalGrid
を使用すると、2 つの異なるパブリック メソッドを使用して、プログラムで行追加 UI を生成できます。1 つは UI が生成される行を指定するための行 ID を受け入れ、もう 1 つはインデックスによって機能します。これらのメソッドを使用して、現在のデータ ビュー内の任意の場所に UI を生成できます。ページの変更や、たとえばフィルターで除外された行の指定はサポートされていません。
beginAddRowById
を使用するには、RowID
(PK) によって操作のコンテキストとして使用する行を指定する必要があります。このメソッドは、エンドユーザーが指定された行の [行の追加] アクション ストリップ ボタンをクリックしたかのように機能し、その下に UI を生成します。最初のパラメーターに null
を渡すことで、UI をグリッドの最初の行としてス生成させることもできます。
gridRef.current.beginAddRowById('ALFKI'); // Spawns the add row UI under the row with PK 'ALFKI'
gridRef.current.beginAddRowById(null); // Spawns the add row UI as the first record
beginAddRowByIndex
メソッドも同様に機能しますが、UI が生成されるインデックスを指定する必要があります。許可される値の範囲は、0 からデータ ビューのサイズ -1 までです。
gridRef.current.beginAddRowByIndex(10); // Spawns the add row UI at index 10
gridRef.current.beginAddRowByIndex(0); // Spawns the add row UI as the first record
位置
行追加 UI のデフォルト位置は、エンド ユーザーが [行の追加] ボタンをクリックした行の下にあります。
IgrHierarchicalGrid
がスクロールして、行追加 UI が自動的に完全に表示されます。行追加 UI のオーバーレイは、スクロール中もその位置を維持します。
動作
行追加 UI は、エンド ユーザーに整合性のある編集エクスペリエンスを提供するように設計されているため、行編集 UI と同じ動作をします。詳細については、Hierarchical Grid 行の編集のトピックを参照してください。
行追加 UI を介して新しい行が追加された後、その位置や表示状態は、IgrHierarchicalGrid
のソート、フィルタリングおよびグループ化の状態によって決定されます。これらの状態のいずれも適用されていない IgrHierarchicalGrid
では、最後のレコードとして表示されます。スナックバーが短時間表示され、IgrHierarchicalGrid
が表示されていない場合にはエンド ユーザーがコントロールの位置までスクロールするためのボタンが含まれています。
キーボード ナビゲーション
- ALT + + - 行を追加するために編集モードに入ります。
ESC は変更を送信せずに行追加モードを終了します。
TAB - 行の編集可能なセルから次のセルへフォーカスを移動、右端の編集可能なセルから [キャンセル] と [完了] ボタンへ移動します。[完了] ボタンからのナビゲーションは現在の編集行内で編集可能なセルへ移動します。
機能の統合
IgrHierarchicalGrid
のデータ ビューが変更されると、行追加の操作は停止します。エンド ユーザーが行った変更はすべて送信されます。データ ビューを変更する操作には、ソート、グループ化、フィルタリング、ページングなどが含まれますが、これらに限定されません。行追加の操作が終了すると、集計が更新されます。同じことが、ソート、フィルタリングなど、他のデータ ビューに依存する機能にも当てはまります。
IgrHierarchicalGrid
の UI を生成すると、エンド ユーザーが [行の追加] ボタンをクリックした行に対して現在展開されている子レイアウトはすべて縮小されます。
行追加オーバーレイのカスタマイズ
テキストのカスタマイズ
行追加オーバーレイのテキストのカスタマイズは、RowAddTextDirective
を使用して可能です。
gridRef.current.rowAddTextTemplate = (ctx: IgrGridEmptyTemplateContext) => {
return ('Adding Row');
}
スタイル設定
行追加 UI は IgrActionStrip
編集操作のボタン、編集エディター、オーバーレイ、エンドユーザーが新しく追加された行にスクロールできるスナックバーが構成されます。これらのコンポーネントのスタイル設定には、それぞれのトピックのガイドを参照してください。
API リファレンス
rowEditable
RowEditEnter
RowEdit
RowEditDone
RowEditCancel
endEdit
primaryKey
IgrHierarchicalGrid
その他のリソース
コミュニティに参加して新しいアイデアをご提案ください。