[]
FlexGrid セルテンプレートに対応するReactコンポーネント。
wjFlexGridCellTemplate ディレクティブは、FlexGrid 内の特定のセルタイプに 使用されるテンプレートを定義します。 これは、 <template> 要素に定義され、{@link wijmo.angular2.grid.CellTemplateType} を指定する cellType 属性が含まれる必要があります。テンプレートのセルタイプに応じて、 wjFlexGridCellTemplate ディレクティブを含むtemplate要素は、 wijmo.angular2.grid.WjFlexGridまたは wijmo.angular2.grid.WjFlexGridColumn ディレクティブのいずれかの子である必要があります。 列固有のセルテンプレートは wj-flex-grid-column コンポーネントに含まれる必要があり、 列固有でないセル(行ヘッダーや左上のセルなど)は wj-flex-grid コンポーネントに含まれる必要があります。
wjFlexGridCellTemplateディレクティブを含む <template> 要素には、 Angular 2内挿式および他のコンポーネント/ディレクティブを含む 任意のHTMLフラグメントを含めることができます。
HTMLフラグメント内の連結では、セルコンテキストオブジェクトを含む cell ローカルテンプレート変数を、 そのセルに関連する Column、Row、および Row.dataItem オブジェクトを参照する col、row、およびitemプロパティと共に使用できます。 Group や CellEdit などのセルタイプには、 書式設定されていないセル値を含む value プロパティが別途用意されています。 たとえば、次の FlexGrid コントロールでは、 行ヘッダー用、Country列の通常のセル用、 およびその列ヘッダーセル用にテンプレートが使用されています。
<!-- component.html --> <wjGrid.FlexGrid itemsSource={this.state.data}> <wjGrid.FlexGridCellTemplate cellType="RowHeader" template={ (context) => context.row.index + 1 } /> <wjGrid.FlexGridCellTemplate cellType="RowHeaderEdit" template={ (context) => '...' } /> <wjGrid.FlexGridColumn header="Country" binding="country"> <wjGrid.FlexGridCellTemplate cellType="ColumnHeader" template={ (context) => { return <React.Fragment> <img src="resources/globe.png" /> {context.col.header} </React.Fragment> } } /> <wjGrid.FlexGridCellTemplate cellType="Cell" template={ (context) => { return <React.Fragment> <img src={`resources/${context.item.country}.png`} /> {context.item.country} </React.Fragment> } } /> </wjGrid.FlexGridColumn> <wjGrid.FlexGridColumn header="Sales" binding="sales"></wjGrid.FlexGridColumn> </wjGrid.FlexGrid>
特定のセルタイプテンプレートの詳細については、 {@link wijmo.angular2.grid.CellTemplateType} 列挙のドキュメントを参照してください。 FlexGridCellTemplate ディレクティブは、次のプロパティをサポートしています。
cellType ディレクティブは、次の属性をサポートします。
Cell
通常の(データ)セルテンプレートを定義します。 wijmo.angular2.grid.WjFlexGridColumn コンポーネントの子である必要があります。 たとえば、次のセルテンプレートはCountry列のセルのフラグを示します。
<wjGrid.FlexGridColumn header="Country" binding="country"> <wjGrid.FlexGridCellTemplate cellType="Cell" template={ (context) => { return <React.Fragment> <img src={`resources/${context.item.country}.png`} /> {context.item.country} </React.Fragment> } } /> </wjGrid.FlexGridColumn>
階層FlexGrid (childItemsPath プロパティが指定されているグリッド)で Group テンプレートが提供されていない場合は、この Column のグループ行の ヘッダー以外のセルにもこのテンプレートが使用されます。
CellEdit
編集モードのセルのテンプレートを定義します。wijmo.angular2.grid.WjFlexGridColumn コンポーネントの子である必要があります。 このセルタイプは、連結に利用できる context.value プロパティを別途持ちます。 また、 編集前の元のセル値と編集後の更新値を持ちます。 たとえば、Wijmo InputNumber コントロールを"Sales"列のエディタとして使用するテンプレートを次に示します。
<wjGrid.FlexGridColumn header="Sales" binding="sales"> <wjGrid.FlexGridCellTemplate cellType="CellEdit" template={ (context) => { return <wjInput.InputNumber step={1} value={context.value} valueChanged={(inpNum: wjcInput.InputNumber) => context.value = inpNum.value } /> } } /> </wjGrid.FlexGridColumn>
<b>ColumnHeader</b>
列ヘッダーセルのテンプレートを定義します。 wijmo.angular2.grid.WjFlexGridColumn コンポーネントの子である必要があります。 たとえば、次のテンプレートは"Country"列のヘッダーに画像を追加します。
<wjGrid.FlexGridColumn header="Country" binding="country"> <wjGrid.FlexGridCellTemplate cellType="ColumnHeader" template={ (context) => { return <React.Fragment> <img src="resources/globe.png" /> {context.col.header} </React.Fragment> } } /> </wjGrid.FlexGridColumn>
RowHeader
行ヘッダーセルのテンプレートを定義します。 wijmo.angular2.grid.WjFlexGrid コンポーネントの子である必要があります。 たとえば、次のテンプレートは行ヘッダーに行インデックスを表示します。
<wjGrid.FlexGrid itemsSource={this.state.data}> <wjGrid.FlexGridCellTemplate cellType="RowHeader" template={ (context) => context.row.index + 1 } /> </wjGrid.FlexGrid>
行ヘッダーセルが編集モードの行にある場合でも、このテンプレートが適用されます。 編集モードバージョンの行ヘッダーセルに別のコンテンツを提供するには、 RowHeaderEdit テンプレートを定義します。
RowHeaderEdit
編集モードの行ヘッダーセルのテンプレートを定義します。 wijmo.angular2.grid.WjFlexGrid コンポーネントの子である必要があります。 たとえば、次のテンプレートは編集中の行のヘッダーにドットを表示します。
<wjGrid.FlexGrid itemsSource={this.state.data}> <wjGrid.FlexGridCellTemplate cellType="RowHeaderEdit" template={ (context) => '...' } /> </wjGrid.FlexGrid>
RowHeaderEdit テンプレートが適用されるセルに標準的な編集モードインジケータを追加するには、次の RowHeader テンプレートを使用します。
<wjGrid.FlexGrid itemsSource={this.state.data}> <wjGrid.FlexGridCellTemplate cellType="RowHeaderEdit" template={ (context) => '\u270e\ufe0e' } /> </wjGrid.FlexGrid>
TopLeft
左上のセルのテンプレートを定義します。 wijmo.angular2.grid.WjFlexGrid コンポーネントの子である必要があります。 たとえば、次のテンプレートはグリッドの左上のセルに右下三角グリフを表示します。
<wjGrid.FlexGrid itemsSource={this.state.data}> <wjGrid.FlexGridCellTemplate cellType="TopLeft" template={ (context) => { return <span class="wj-glyph-down-right"></span> } } /> </wjGrid.FlexGrid>
GroupHeader
GroupRow 内にあるグループヘッダーセルのテンプレートを定義します。 wijmo.angular2.grid.WjFlexGridColumn コンポーネントの子である必要があります。
context.row プロパティには、 GroupRow クラスのインスタンスが含まれます。グループ化が CollectionView で行われる場合、context.item プロパティは CollectionViewGroup オブジェクトを参照します。
たとえば、次のテンプレートは展開/折りたたみの切り替えにチェックボックス要素を使用します。
<wjGrid.FlexGridColumn header="Country" binding="country"> <wjGrid.FlexGridCellTemplate cellType="GroupHeader" template={ (context) => { return <React.Fragment> <input type="checkbox" checked={context.row.isCollapsed} onChange={e => context.row.isCollapsed = e.target.checked as boolean } /> {context.item.name} ({context.item.items.length} items) </React.Fragment> } } /> </wjGrid.FlexGridColumn>
Group
GroupRow 内にある通常のセル(グループヘッダーでない)のテンプレートを定義します。 wijmo.angular2.grid.WjFlexGridColumn コンポーネントの子である必要があります。 このセルタイプは、連結に利用できる context.value プロパティを別途持ちます。 列に aggregate プロパティが指定されている場合、 その列には書式設定されていない集計値が含まれます。 たとえば、次のテンプレートは"Sales"列に集計値とグループ行セルの種類を表示します。
<wjGrid.FlexGridColumn header="Sales" binding="sales" aggregate="Avg"> <wjGrid.FlexGridCellTemplate cellType="Group" template={ (context) => { return <React.Fragment> Average: {wjcCore.Globalize.formatNumber(context.value, 'N0')} </React.Fragment> } } /> </wjGrid.FlexGridColumn>
ColumnFooter
columnFooters パネル内にある通常のセルのテンプレートを定義します。 wijmo.angular2.grid.WjFlexGridColumn コンポーネントの子である必要があります。 このセルタイプは、連結に利用できる、セル値を含む context.value プロパティを別途持ちます。
たとえば、次のテンプレートは"Sales"列に集計値とグループ行セルの種類を表示します。
<wjGrid.FlexGridColumn header="Sales" binding="sales" aggregate="Avg"> <wjGrid.FlexGridCellTemplate cellType="ColumnFooter" template={ (context) => { return <React.Fragment> Average: {wjcCore.Globalize.formatNumber(context.value, 'N0')} </React.Fragment> } } /> </wjGrid.FlexGridColumn>
BottomLeft
左下のセル(行ヘッダーと列フッターが交差する位置にあるセル)のテンプレートを定義します。 wijmo.angular2.grid.WjFlexGrid コンポーネントの子である必要があります。 たとえば、次のテンプレートはグリッドの左下のセルにシグマグリフを表示します。
<wjGrid.FlexGrid itemsSource={this.state.data}> <wjGrid.FlexGridCellTemplate cellType="BottomLeft" template={(context) => <span>Σ</span>} /> </wjGrid.FlexGrid>
NewCellTemplate
新しい行テンプレートのセルを定義します。 wijmo.angular2.grid.WjFlexGridColumn コンポーネントの子である必要があります。 このタイプのセルに context.item プロパティは定義されません。 たとえば、次のセルテンプレートは「新しい行」項目のDate列セルにプレースホルダを表示します。
<wjGrid.FlexGridColumn header="日付" binding="date"> <wjGrid.FlexGridCellTemplate cellType="NewCellTemplate" template={ (context) => 'ここに日付を入力してください' } /> </wjGrid.FlexGridColumn>
FlexGrid セルテンプレートに対応するReactコンポーネント。
wjFlexGridCellTemplate ディレクティブは、FlexGrid 内の特定のセルタイプに 使用されるテンプレートを定義します。 これは、 <template> 要素に定義され、{@link wijmo.angular2.grid.CellTemplateType} を指定する cellType 属性が含まれる必要があります。テンプレートのセルタイプに応じて、 wjFlexGridCellTemplate ディレクティブを含むtemplate要素は、 wijmo.angular2.grid.WjFlexGridまたは wijmo.angular2.grid.WjFlexGridColumn ディレクティブのいずれかの子である必要があります。 列固有のセルテンプレートは wj-flex-grid-column コンポーネントに含まれる必要があり、 列固有でないセル(行ヘッダーや左上のセルなど)は wj-flex-grid コンポーネントに含まれる必要があります。
wjFlexGridCellTemplateディレクティブを含む <template> 要素には、 Angular 2内挿式および他のコンポーネント/ディレクティブを含む 任意のHTMLフラグメントを含めることができます。
HTMLフラグメント内の連結では、セルコンテキストオブジェクトを含む cell ローカルテンプレート変数を、 そのセルに関連する Column、Row、および Row.dataItem オブジェクトを参照する col、row、およびitemプロパティと共に使用できます。 Group や CellEdit などのセルタイプには、 書式設定されていないセル値を含む value プロパティが別途用意されています。 たとえば、次の FlexGrid コントロールでは、 行ヘッダー用、Country列の通常のセル用、 およびその列ヘッダーセル用にテンプレートが使用されています。
<!-- component.html --> <wjGrid.FlexGrid itemsSource={this.state.data}> <wjGrid.FlexGridCellTemplate cellType="RowHeader" template={ (context) => context.row.index + 1 } /> <wjGrid.FlexGridCellTemplate cellType="RowHeaderEdit" template={ (context) => '...' } /> <wjGrid.FlexGridColumn header="Country" binding="country"> <wjGrid.FlexGridCellTemplate cellType="ColumnHeader" template={ (context) => { return <React.Fragment> <img src="resources/globe.png" /> {context.col.header} </React.Fragment> } } /> <wjGrid.FlexGridCellTemplate cellType="Cell" template={ (context) => { return <React.Fragment> <img src={`resources/${context.item.country}.png`} /> {context.item.country} </React.Fragment> } } /> </wjGrid.FlexGridColumn> <wjGrid.FlexGridColumn header="Sales" binding="sales"></wjGrid.FlexGridColumn> </wjGrid.FlexGrid>
特定のセルタイプテンプレートの詳細については、 {@link wijmo.angular2.grid.CellTemplateType} 列挙のドキュメントを参照してください。
FlexGridCellTemplate ディレクティブは、次のプロパティをサポートしています。
cellType ディレクティブは、次の属性をサポートします。
Cell
通常の(データ)セルテンプレートを定義します。 wijmo.angular2.grid.WjFlexGridColumn コンポーネントの子である必要があります。 たとえば、次のセルテンプレートはCountry列のセルのフラグを示します。
<wjGrid.FlexGridColumn header="Country" binding="country"> <wjGrid.FlexGridCellTemplate cellType="Cell" template={ (context) => { return <React.Fragment> <img src={`resources/${context.item.country}.png`} /> {context.item.country} </React.Fragment> } } /> </wjGrid.FlexGridColumn>
階層FlexGrid (childItemsPath プロパティが指定されているグリッド)で Group テンプレートが提供されていない場合は、この Column のグループ行の ヘッダー以外のセルにもこのテンプレートが使用されます。
CellEdit
編集モードのセルのテンプレートを定義します。wijmo.angular2.grid.WjFlexGridColumn コンポーネントの子である必要があります。 このセルタイプは、連結に利用できる context.value プロパティを別途持ちます。 また、 編集前の元のセル値と編集後の更新値を持ちます。 たとえば、Wijmo InputNumber コントロールを"Sales"列のエディタとして使用するテンプレートを次に示します。
<wjGrid.FlexGridColumn header="Sales" binding="sales"> <wjGrid.FlexGridCellTemplate cellType="CellEdit" template={ (context) => { return <wjInput.InputNumber step={1} value={context.value} valueChanged={(inpNum: wjcInput.InputNumber) => context.value = inpNum.value } /> } } /> </wjGrid.FlexGridColumn>
<b>ColumnHeader</b>
列ヘッダーセルのテンプレートを定義します。 wijmo.angular2.grid.WjFlexGridColumn コンポーネントの子である必要があります。 たとえば、次のテンプレートは"Country"列のヘッダーに画像を追加します。
<wjGrid.FlexGridColumn header="Country" binding="country"> <wjGrid.FlexGridCellTemplate cellType="ColumnHeader" template={ (context) => { return <React.Fragment> <img src="resources/globe.png" /> {context.col.header} </React.Fragment> } } /> </wjGrid.FlexGridColumn>
RowHeader
行ヘッダーセルのテンプレートを定義します。 wijmo.angular2.grid.WjFlexGrid コンポーネントの子である必要があります。 たとえば、次のテンプレートは行ヘッダーに行インデックスを表示します。
<wjGrid.FlexGrid itemsSource={this.state.data}> <wjGrid.FlexGridCellTemplate cellType="RowHeader" template={ (context) => context.row.index + 1 } /> </wjGrid.FlexGrid>
行ヘッダーセルが編集モードの行にある場合でも、このテンプレートが適用されます。 編集モードバージョンの行ヘッダーセルに別のコンテンツを提供するには、 RowHeaderEdit テンプレートを定義します。
RowHeaderEdit
編集モードの行ヘッダーセルのテンプレートを定義します。 wijmo.angular2.grid.WjFlexGrid コンポーネントの子である必要があります。 たとえば、次のテンプレートは編集中の行のヘッダーにドットを表示します。
<wjGrid.FlexGrid itemsSource={this.state.data}> <wjGrid.FlexGridCellTemplate cellType="RowHeaderEdit" template={ (context) => '...' } /> </wjGrid.FlexGrid>
RowHeaderEdit テンプレートが適用されるセルに標準的な編集モードインジケータを追加するには、次の RowHeader テンプレートを使用します。
<wjGrid.FlexGrid itemsSource={this.state.data}> <wjGrid.FlexGridCellTemplate cellType="RowHeaderEdit" template={ (context) => '\u270e\ufe0e' } /> </wjGrid.FlexGrid>
TopLeft
左上のセルのテンプレートを定義します。 wijmo.angular2.grid.WjFlexGrid コンポーネントの子である必要があります。 たとえば、次のテンプレートはグリッドの左上のセルに右下三角グリフを表示します。
<wjGrid.FlexGrid itemsSource={this.state.data}> <wjGrid.FlexGridCellTemplate cellType="TopLeft" template={ (context) => { return <span class="wj-glyph-down-right"></span> } } /> </wjGrid.FlexGrid>
GroupHeader
GroupRow 内にあるグループヘッダーセルのテンプレートを定義します。 wijmo.angular2.grid.WjFlexGridColumn コンポーネントの子である必要があります。
context.row プロパティには、 GroupRow クラスのインスタンスが含まれます。グループ化が CollectionView で行われる場合、context.item プロパティは CollectionViewGroup オブジェクトを参照します。
たとえば、次のテンプレートは展開/折りたたみの切り替えにチェックボックス要素を使用します。
<wjGrid.FlexGridColumn header="Country" binding="country"> <wjGrid.FlexGridCellTemplate cellType="GroupHeader" template={ (context) => { return <React.Fragment> <input type="checkbox" checked={context.row.isCollapsed} onChange={e => context.row.isCollapsed = e.target.checked as boolean } /> {context.item.name} ({context.item.items.length} items) </React.Fragment> } } /> </wjGrid.FlexGridColumn>
Group
GroupRow 内にある通常のセル(グループヘッダーでない)のテンプレートを定義します。 wijmo.angular2.grid.WjFlexGridColumn コンポーネントの子である必要があります。 このセルタイプは、連結に利用できる context.value プロパティを別途持ちます。 列に aggregate プロパティが指定されている場合、 その列には書式設定されていない集計値が含まれます。 たとえば、次のテンプレートは"Sales"列に集計値とグループ行セルの種類を表示します。
<wjGrid.FlexGridColumn header="Sales" binding="sales" aggregate="Avg"> <wjGrid.FlexGridCellTemplate cellType="Group" template={ (context) => { return <React.Fragment> Average: {wjcCore.Globalize.formatNumber(context.value, 'N0')} </React.Fragment> } } /> </wjGrid.FlexGridColumn>
ColumnFooter
columnFooters パネル内にある通常のセルのテンプレートを定義します。 wijmo.angular2.grid.WjFlexGridColumn コンポーネントの子である必要があります。 このセルタイプは、連結に利用できる、セル値を含む context.value プロパティを別途持ちます。
たとえば、次のテンプレートは"Sales"列に集計値とグループ行セルの種類を表示します。
<wjGrid.FlexGridColumn header="Sales" binding="sales" aggregate="Avg"> <wjGrid.FlexGridCellTemplate cellType="ColumnFooter" template={ (context) => { return <React.Fragment> Average: {wjcCore.Globalize.formatNumber(context.value, 'N0')} </React.Fragment> } } /> </wjGrid.FlexGridColumn>
BottomLeft
左下のセル(行ヘッダーと列フッターが交差する位置にあるセル)のテンプレートを定義します。 wijmo.angular2.grid.WjFlexGrid コンポーネントの子である必要があります。 たとえば、次のテンプレートはグリッドの左下のセルにシグマグリフを表示します。
<wjGrid.FlexGrid itemsSource={this.state.data}> <wjGrid.FlexGridCellTemplate cellType="BottomLeft" template={(context) => <span>Σ</span>} /> </wjGrid.FlexGrid>
NewCellTemplate
新しい行テンプレートのセルを定義します。 wijmo.angular2.grid.WjFlexGridColumn コンポーネントの子である必要があります。 このタイプのセルに context.item プロパティは定義されません。 たとえば、次のセルテンプレートは「新しい行」項目のDate列セルにプレースホルダを表示します。
<wjGrid.FlexGridColumn header="日付" binding="date"> <wjGrid.FlexGridCellTemplate cellType="NewCellTemplate" template={ (context) => 'ここに日付を入力してください' } /> </wjGrid.FlexGridColumn>