Web Components Hierarchical Grid 列ピン固定
Web Components Hierarchical Grid の Ignite UI for Web Components 列のピン固定機能を使用すると、開発者は特定の列を希望の順序でロックできるため、ユーザーが IgcGridComponent
を水平方向にスクロールしている場合でも、常に可視性を確保できます。
列ピン固定用の統合 UI があり、Web Components Hierarchical Grid ツールバーからアクセスできます。さらに、開発者は、列のピン状態を変更するカスタム ユーザー インターフェイスを柔軟に構築できます。
Web Components Hierarchical Grid 列ピン固定の例
以下の例は、1 つまたは複数の列を IgcHierarchicalGridComponent
の左側または右側にピン固定する方法を示しています。
import 'igniteui-webcomponents-grids/grids/combined';
import { IgcHierarchicalGridComponent } from 'igniteui-webcomponents-grids/grids';
import HierarchicalCustomersData from './HierarchicalCustomersData.json';
import "igniteui-webcomponents-grids/grids/themes/light/bootstrap.css";
import "./index.css";
export class Sample {
private grid: IgcHierarchicalGridComponent
private _bind: () => void;
constructor() {
var grid = this.grid = document.getElementById('grid') as IgcHierarchicalGridComponent;
this._bind = () => {
grid.data = this.hierarchicalCustomersData;
}
this._bind();
}
private _hierarchicalCustomersData: any[] = HierarchicalCustomersData;
public get hierarchicalCustomersData(): any[] {
return this._hierarchicalCustomersData;
}
}
new Sample();
ts
<!DOCTYPE html>
<html>
<head>
<title>Sample | Ignite UI | Web Components | infragistics</title>
<meta charset="UTF-8" />
<link rel="shortcut icon" href="https://static.infragistics.com/xplatform/images/browsers/wc.png" >
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Kanit&display=swap" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Titillium Web" />
<link rel="stylesheet" href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css" />
<link rel="stylesheet" href="/src/index.css" type="text/css" />
</head>
<body>
<div id="root">
<div class="container sample ig-typography">
<div class="container fill">
<igc-hierarchical-grid
name="grid"
id="grid"
id="grid"
column-selection="single"
primary-key="CustomerID">
<igc-grid-toolbar
>
<igc-grid-toolbar-actions
>
<igc-grid-toolbar-pinning
>
</igc-grid-toolbar-pinning>
</igc-grid-toolbar-actions>
</igc-grid-toolbar>
<igc-column
field="CustomerID"
hidden="true">
</igc-column>
<igc-column
field="Company"
header="Company Name"
pinned="true">
</igc-column>
<igc-column
field="ContactName"
header="Contact Name">
</igc-column>
<igc-column
field="ContactTitle"
header="Contact Title">
</igc-column>
<igc-column
field="Address"
header="Address">
</igc-column>
<igc-column
field="City"
header="City">
</igc-column>
<igc-column
field="PostalCode"
header="Postal Code">
</igc-column>
<igc-column
field="Country"
header="Country">
</igc-column>
<igc-column
field="Phone">
</igc-column>
<igc-column
field="Fax">
</igc-column>
<igc-row-island
child-data-key="Orders"
auto-generate="false">
<igc-column
field="OrderDate"
header="Order Date"
data-type="date"
resizable="true">
</igc-column>
<igc-column
field="RequiredDate"
header="Required Date"
data-type="date"
resizable="true">
</igc-column>
<igc-column
field="ShippedDate"
header="Shipped Date"
data-type="date"
resizable="true">
</igc-column>
<igc-column
field="ShipName"
header="Ship Name"
data-type="string"
resizable="true"
pinned="true">
</igc-column>
<igc-column
field="ShippedVia"
header="Shipped Via"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Freight"
header="Freight"
data-type="string"
resizable="true">
</igc-column>
<igc-row-island
child-data-key="OrderDetails"
auto-generate="false">
<igc-column
field="UnitPrice"
header="Unit Price"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Quantity"
header="Quantity"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Discount"
header="Discount"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Weight"
header="Weight"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Length"
header="Length"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="TotalPrice"
header="Total Price"
data-type="string"
resizable="true">
</igc-column>
</igc-row-island>
</igc-row-island>
</igc-hierarchical-grid>
</div>
</div>
</div>
<% if (false) { %><script src="src/index.ts"></script><% } %>
</body>
</html>
html
このサンプルが気に入りましたか? 完全な Ignite UI for Web Componentsツールキットにアクセスして、すばやく独自のアプリの作成を開始します。無料でダウンロードできます。
列ピン固定の API
列のピン固定は IgcColumnComponent
の pinned
プロパティによって制御されます。デフォルトでピン固定列は IgcHierarchicalGridComponent
の左側に固定して描画され、IgcHierarchicalGridComponent
本体のピン固定されていない列は水平スクロールされます。
<igc-hierarchical-grid id="hierarchicalGrid" class="hgrid" auto-generate="false"
height="600px" width="800px" >
<igc-column field="Artist" width="200px" pinned="true"></igc-column>
<igc-column field="Debut" width="200px"></igc-column>
</igc-hierarchical-grid>
html
IgcHierarchicalGridComponent
の pinColumn
または unpinColumn
メソッドを使用してフィールド名によって列をピン固定またはピン固定解除できます。
this.hierarchicalGrid.pinColumn('Artist');
this.hierarchicalGrid.unpinColumn('Debut');
typescript
両方のメソッドは操作に成功したかどうかを示すブール値を返します。よくある失敗の原因に列がすでにその状態になっていることがあります。
列をピン固定すると、一番右に配置されたピン固定列の右にピン固定されます。ピン固定列の順序を変更するには、ColumnPin
イベントでイベント引数の InsertAtIndex
プロパティを適切な位置インデックスに変更します。
<igc-hierarchical-grid id="dataGrid" auto-generate="true"></igc-hierarchical-grid>
html
constructor() {
var dataGrid = document.getElementById('dataGrid') as IgcHierarchicalGridComponent;
dataGrid.data = this.data;
dataGrid.addEventListener("columnPin", this.columnPinning);
}
typescript
public columnPinning(event) {
if (event.detail.column.field === 'Name') {
event.detail.insertAtIndex = 0;
}
}
typescript
ピン固定の位置
pinning
設定オプションを使用して、列のピン固定の位置を変更できます。列の位置を [Start] または [End] のいずれかに設定できます。
[End] に設定すると、列がピン固定されていない列の後に、グリッドの最後にレンダリングされます。ピン固定されていない列は水平にスクロールできますが、ピン固定された列は右側に固定されます。
<igc-hierarchical-grid id="dataGrid" auto-generate="true"></igc-hierarchical-grid>
html
var grid = document.getElementById('dataGrid') as IgcHierarchicalGridComponent;
grid.pinning = { columns: ColumnPinningPosition.End };
typescript
デモ
import 'igniteui-webcomponents-grids/grids/combined';
import { IgcHierarchicalGridComponent, IgcPinningConfig, ColumnPinningPosition } from 'igniteui-webcomponents-grids/grids';
import HierarchicalCustomersData from './HierarchicalCustomersData.json';
import "igniteui-webcomponents-grids/grids/themes/light/bootstrap.css";
import "./index.css";
export class Sample {
private grid: IgcHierarchicalGridComponent
private _pinningConfig1: IgcPinningConfig | null = null;
public get pinningConfig1(): IgcPinningConfig {
if (this._pinningConfig1 == null)
{
var pinningConfig1: IgcPinningConfig = {} as IgcPinningConfig;
pinningConfig1.columns = ColumnPinningPosition.End;
this._pinningConfig1 = pinningConfig1;
}
return this._pinningConfig1;
}
private _bind: () => void;
constructor() {
var grid = this.grid = document.getElementById('grid') as IgcHierarchicalGridComponent;
this._bind = () => {
grid.data = this.hierarchicalCustomersData;
grid.pinning = this.pinningConfig1;
}
this._bind();
}
private _hierarchicalCustomersData: any[] = HierarchicalCustomersData;
public get hierarchicalCustomersData(): any[] {
return this._hierarchicalCustomersData;
}
}
new Sample();
ts
<!DOCTYPE html>
<html>
<head>
<title>Sample | Ignite UI | Web Components | infragistics</title>
<meta charset="UTF-8" />
<link rel="shortcut icon" href="https://static.infragistics.com/xplatform/images/browsers/wc.png" >
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Kanit&display=swap" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Titillium Web" />
<link rel="stylesheet" href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css" />
<link rel="stylesheet" href="/src/index.css" type="text/css" />
</head>
<body>
<div id="root">
<div class="container sample ig-typography">
<div class="container fill">
<igc-hierarchical-grid
name="grid"
id="grid"
id="grid"
column-selection="single"
primary-key="CustomerID">
<igc-grid-toolbar
>
<igc-grid-toolbar-actions
>
<igc-grid-toolbar-pinning
>
</igc-grid-toolbar-pinning>
</igc-grid-toolbar-actions>
</igc-grid-toolbar>
<igc-column
field="CustomerID"
hidden="true">
</igc-column>
<igc-column
field="Company"
header="Company Name"
pinned="true">
</igc-column>
<igc-column
field="ContactName"
header="Contact Name">
</igc-column>
<igc-column
field="ContactTitle"
header="Contact Title">
</igc-column>
<igc-column
field="Address"
header="Address">
</igc-column>
<igc-column
field="City"
header="City">
</igc-column>
<igc-column
field="PostalCode"
header="Postal Code">
</igc-column>
<igc-column
field="Country"
header="Country">
</igc-column>
<igc-column
field="Phone">
</igc-column>
<igc-column
field="Fax">
</igc-column>
<igc-row-island
child-data-key="Orders"
auto-generate="false">
<igc-column
field="OrderDate"
header="Order Date"
data-type="date"
resizable="true">
</igc-column>
<igc-column
field="RequiredDate"
header="Required Date"
data-type="date"
resizable="true">
</igc-column>
<igc-column
field="ShippedDate"
header="Shipped Date"
data-type="date"
resizable="true">
</igc-column>
<igc-column
field="ShipName"
header="Ship Name"
data-type="string"
resizable="true"
pinned="true">
</igc-column>
<igc-column
field="ShippedVia"
header="Shipped Via"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Freight"
header="Freight"
data-type="string"
resizable="true">
</igc-column>
<igc-row-island
child-data-key="OrderDetails"
auto-generate="false">
<igc-column
field="UnitPrice"
header="Unit Price"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Quantity"
header="Quantity"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Discount"
header="Discount"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Weight"
header="Weight"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Length"
header="Length"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="TotalPrice"
header="Total Price"
data-type="string"
resizable="true">
</igc-column>
</igc-row-island>
</igc-row-island>
</igc-hierarchical-grid>
</div>
</div>
</div>
<% if (false) { %><script src="src/index.ts"></script><% } %>
</body>
</html>
html
カスタム列ピン固定 UI
カスタム UI を定義し、関連する API を介して列のピン状態を変更できます。
ツールバーの代わりに、エンドユーザーが特定の列のピンの状態を変更するためにクリックできる列ヘッダーにピンアイコンを定義するとします。
これは、カスタムアイコンを使用して列のヘッダーテンプレートを作成することで実行できます。
<igc-hierarchical-grid id="hGrid" class="hierarchicalGrid" auto-generate="false"
height="500px" width="100%">
<igc-column id="CompanyName" field="CompanyName" header="Company Name" width="200px" pinned="true"></igx-column>
<igc-column id="ContactName" field="ContactName" header="Contact Name" width="150px"></igx-column>
<igc-column id="ContactTitle" field="ContactTitle" header="Contact Title" width="200px"></igx-column>
<igc-row-island key="Orders" auto-generate="false">
<igc-column id="OrderDate" field="OrderDate" header="Order Date" data-type="Date" width="150px"></igx-column>
<igc-column id="RequiredDate" field="RequiredDate" header="Required Date" data-type="Date" width="150px"></igx-column>
<igc-column id="ShippedDate" field="ShippedDate" header="Shipped Date" data-type="Date" width="150px"></igx-column>
<igc-column id="ShipVia" field="ShipVia" header="Ship Via" width="150px"></igx-column>
<igc-row-island key="OrderDetails" auto-generate="false">
<igc-column field="UnitPrice" header="Unit Price" width="150px"></igx-column>
<igc-column field="Quantity" width="150px"></igx-column>
<igc-column field="Discount" width="150px"></igx-column>
</igc-row-island>
</igc-row-island>
</igc-hierarchical-grid>
html
constructor() {
var hGrid = this.hGrid = document.getElementById('hGrid') as IgcHierarchicalGridComponent;
var CompanyName = this.CompanyName = document.getElementById('CompanyName') as IgcColumnComponent;
var ContactName = this.ContactName = document.getElementById('ContactName') as IgcColumnComponent;
var ContactTitle = this.ContactTitle = document.getElementById('ContactTitle') as IgcColumnComponent;
var OrderDate = this.OrderDate = document.getElementById('OrderDate') as IgcColumnComponent;
var RequiredDate = this.RequiredDate = document.getElementById('RequiredDate') as IgcColumnComponent;
var ShippedDate = this.ShippedDate = document.getElementById('ShippedDate') as IgcColumnComponent;
var ShipVia = this.ShipVia = document.getElementById('ShipVia') as IgcColumnComponent;
hGrid.data = this.data;
CompanyName.headerTemplate = this.pinHeaderTemplate;
ContactName.headerTemplate = this.pinHeaderTemplate;
ContactTitle.headerTemplate = this.pinHeaderTemplate;
OrderDate.headerTemplate = this.pinHeaderTemplate;
RequiredDate.headerTemplate = this.pinHeaderTemplate;
ShippedDate.headerTemplate = this.pinHeaderTemplate;
ShipVia.headerTemplate = this.pinHeaderTemplate;
}
public pinHeaderTemplate = (ctx: IgcCellTemplateContext) => {
return html`
<div class="title-inner">
<span style="float:left">${ctx.cell.column.header}</span>
<igc-icon class="pin-icon" fontSet="fas" name="fa-thumbtack" @click="${() => toggleColumn(ctx.cell.column)}"></igx-icon>
</div>
`;
}
ts
カスタムアイコンをクリックすると、関連する列のピン状態は、列の API メソッドを使用して変更できます。
public toggleColumn(col: IgcColumnComponent) {
col.pinned ? col.unpin() : col.pin();
}
typescript
デモ
import 'igniteui-webcomponents-grids/grids/combined';
import { IgcHierarchicalGridComponent, IgcColumnComponent } from 'igniteui-webcomponents-grids/grids';
import HierarchicalCustomersData from './HierarchicalCustomersData.json';
import { IgcColumnTemplateContext } from 'igniteui-webcomponents-grids/grids';
import { html, nothing } from 'lit-html';
import "igniteui-webcomponents-grids/grids/themes/light/bootstrap.css";
import "./index.css";
export class Sample {
private grid: IgcHierarchicalGridComponent
private column1: IgcColumnComponent
private column2: IgcColumnComponent
private column3: IgcColumnComponent
private column4: IgcColumnComponent
private column5: IgcColumnComponent
private column6: IgcColumnComponent
private column7: IgcColumnComponent
private column8: IgcColumnComponent
private column9: IgcColumnComponent
private column10: IgcColumnComponent
private column11: IgcColumnComponent
private column12: IgcColumnComponent
private column13: IgcColumnComponent
private column14: IgcColumnComponent
private column15: IgcColumnComponent
private column16: IgcColumnComponent
private column17: IgcColumnComponent
private column18: IgcColumnComponent
private column19: IgcColumnComponent
private column20: IgcColumnComponent
private column21: IgcColumnComponent
private _bind: () => void;
constructor() {
var grid = this.grid = document.getElementById('grid') as IgcHierarchicalGridComponent;
var column1 = this.column1 = document.getElementById('column1') as IgcColumnComponent;
var column2 = this.column2 = document.getElementById('column2') as IgcColumnComponent;
var column3 = this.column3 = document.getElementById('column3') as IgcColumnComponent;
var column4 = this.column4 = document.getElementById('column4') as IgcColumnComponent;
var column5 = this.column5 = document.getElementById('column5') as IgcColumnComponent;
var column6 = this.column6 = document.getElementById('column6') as IgcColumnComponent;
var column7 = this.column7 = document.getElementById('column7') as IgcColumnComponent;
var column8 = this.column8 = document.getElementById('column8') as IgcColumnComponent;
var column9 = this.column9 = document.getElementById('column9') as IgcColumnComponent;
var column10 = this.column10 = document.getElementById('column10') as IgcColumnComponent;
var column11 = this.column11 = document.getElementById('column11') as IgcColumnComponent;
var column12 = this.column12 = document.getElementById('column12') as IgcColumnComponent;
var column13 = this.column13 = document.getElementById('column13') as IgcColumnComponent;
var column14 = this.column14 = document.getElementById('column14') as IgcColumnComponent;
var column15 = this.column15 = document.getElementById('column15') as IgcColumnComponent;
var column16 = this.column16 = document.getElementById('column16') as IgcColumnComponent;
var column17 = this.column17 = document.getElementById('column17') as IgcColumnComponent;
var column18 = this.column18 = document.getElementById('column18') as IgcColumnComponent;
var column19 = this.column19 = document.getElementById('column19') as IgcColumnComponent;
var column20 = this.column20 = document.getElementById('column20') as IgcColumnComponent;
var column21 = this.column21 = document.getElementById('column21') as IgcColumnComponent;
this._bind = () => {
grid.data = this.hierarchicalCustomersData;
column1.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column2.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column3.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column4.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column5.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column6.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column7.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column8.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column9.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column10.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column11.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column12.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column13.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column14.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column15.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column16.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column17.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column18.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column19.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column20.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
column21.headerTemplate = this.hierarchicalGridPinHeaderTemplate;
}
this._bind();
}
private _hierarchicalCustomersData: any[] = HierarchicalCustomersData;
public get hierarchicalCustomersData(): any[] {
return this._hierarchicalCustomersData;
}
public hierarchicalGridPinHeaderTemplate = (ctx: IgcColumnTemplateContext) => {
const column = (ctx as any).column;
return html`<div>
<span style="float:left">${column.field}</span>
<span style="float:right" @pointerdown=${(e: any) => this.toggleColumnPin(column)}>📌</span>
</div>`;
};
public toggleColumnPin(field: IgcColumnComponent) {
if(field) {
field.pinned = !field.pinned;
}
}
}
new Sample();
ts
<!DOCTYPE html>
<html>
<head>
<title>Sample | Ignite UI | Web Components | infragistics</title>
<meta charset="UTF-8" />
<link rel="shortcut icon" href="https://static.infragistics.com/xplatform/images/browsers/wc.png" >
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Kanit&display=swap" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Titillium Web" />
<link rel="stylesheet" href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css" />
<link rel="stylesheet" href="/src/index.css" type="text/css" />
</head>
<body>
<div id="root">
<div class="container sample ig-typography">
<div class="container fill">
<igc-hierarchical-grid
name="grid"
id="grid"
id="grid"
column-selection="single"
primary-key="CustomerID">
<igc-grid-toolbar
>
<igc-grid-toolbar-actions
>
<igc-grid-toolbar-pinning
>
</igc-grid-toolbar-pinning>
</igc-grid-toolbar-actions>
</igc-grid-toolbar>
<igc-column
field="CustomerID"
hidden="true">
</igc-column>
<igc-column
field="Company"
header="Company Name"
pinned="true"
name="column1"
id="column1">
</igc-column>
<igc-column
field="ContactName"
header="Contact Name"
name="column2"
id="column2">
</igc-column>
<igc-column
field="ContactTitle"
header="Contact Title"
name="column3"
id="column3">
</igc-column>
<igc-column
field="Address"
header="Address"
name="column4"
id="column4">
</igc-column>
<igc-column
field="City"
header="City"
name="column5"
id="column5">
</igc-column>
<igc-column
field="PostalCode"
header="Postal Code"
name="column6"
id="column6">
</igc-column>
<igc-column
field="Country"
header="Country"
name="column7"
id="column7">
</igc-column>
<igc-column
field="Phone"
name="column8"
id="column8">
</igc-column>
<igc-column
field="Fax"
name="column9"
id="column9">
</igc-column>
<igc-row-island
child-data-key="Orders"
auto-generate="false">
<igc-column
field="OrderDate"
header="Order Date"
data-type="date"
resizable="true"
name="column10"
id="column10">
</igc-column>
<igc-column
field="RequiredDate"
header="Required Date"
data-type="date"
resizable="true"
name="column11"
id="column11">
</igc-column>
<igc-column
field="ShippedDate"
header="Shipped Date"
data-type="date"
resizable="true"
name="column12"
id="column12">
</igc-column>
<igc-column
field="ShipName"
header="Ship Name"
data-type="string"
resizable="true"
pinned="true"
name="column13"
id="column13">
</igc-column>
<igc-column
field="ShippedVia"
header="Shipped Via"
data-type="string"
resizable="true"
name="column14"
id="column14">
</igc-column>
<igc-column
field="Freight"
header="Freight"
data-type="string"
resizable="true"
name="column15"
id="column15">
</igc-column>
<igc-row-island
child-data-key="OrderDetails"
auto-generate="false">
<igc-column
field="UnitPrice"
header="Unit Price"
data-type="string"
resizable="true"
name="column16"
id="column16">
</igc-column>
<igc-column
field="Quantity"
header="Quantity"
data-type="string"
resizable="true"
name="column17"
id="column17">
</igc-column>
<igc-column
field="Discount"
header="Discount"
data-type="string"
resizable="true"
name="column18"
id="column18">
</igc-column>
<igc-column
field="Weight"
header="Weight"
data-type="string"
resizable="true"
name="column19"
id="column19">
</igc-column>
<igc-column
field="Length"
header="Length"
data-type="string"
resizable="true"
name="column20"
id="column20">
</igc-column>
<igc-column
field="TotalPrice"
header="Total Price"
data-type="string"
resizable="true"
name="column21"
id="column21">
</igc-column>
</igc-row-island>
</igc-row-island>
</igc-hierarchical-grid>
</div>
</div>
</div>
<% if (false) { %><script src="src/index.ts"></script><% } %>
</body>
</html>
html
ピン固定の制限
スタイル設定
定義済みのテーマに加えて、利用可能な CSS プロパティのいくつかを設定することで、グリッドをさらにカスタマイズできます。
一部の色を変更したい場合は、最初にグリッドの ID
を設定する必要があります。
<igc-hierarchical-grid id="grid"></igc-hierarchical-grid>
html
Then set the related CSS properties to this class:
#grid {
--ig-grid-pinned-border-width: 5px;
--ig-grid-pinned-border-color: #FFCD0F;
--ig-grid-pinned-border-style: double;
--ig-grid-cell-active-border-color: #FFCD0F;
}
css
デモ
import 'igniteui-webcomponents-grids/grids/combined';
import { IgcHierarchicalGridComponent } from 'igniteui-webcomponents-grids/grids';
import HierarchicalCustomersData from './HierarchicalCustomersData.json';
import "igniteui-webcomponents-grids/grids/themes/light/bootstrap.css";
import "./index.css";
export class Sample {
private grid: IgcHierarchicalGridComponent
private _bind: () => void;
constructor() {
var grid = this.grid = document.getElementById('grid') as IgcHierarchicalGridComponent;
this._bind = () => {
grid.data = this.hierarchicalCustomersData;
}
this._bind();
}
private _hierarchicalCustomersData: any[] = HierarchicalCustomersData;
public get hierarchicalCustomersData(): any[] {
return this._hierarchicalCustomersData;
}
}
new Sample();
ts
<!DOCTYPE html>
<html>
<head>
<title>Sample | Ignite UI | Web Components | infragistics</title>
<meta charset="UTF-8" />
<link rel="shortcut icon" href="https://static.infragistics.com/xplatform/images/browsers/wc.png" >
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Kanit&display=swap" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Titillium Web" />
<link rel="stylesheet" href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css" />
<link rel="stylesheet" href="/src/index.css" type="text/css" />
</head>
<body>
<div id="root">
<div class="container sample ig-typography">
<div class="container fill">
<igc-hierarchical-grid
name="grid"
id="grid"
id="grid"
column-selection="single"
primary-key="CustomerID">
<igc-grid-toolbar
>
<igc-grid-toolbar-actions
>
<igc-grid-toolbar-pinning
>
</igc-grid-toolbar-pinning>
</igc-grid-toolbar-actions>
</igc-grid-toolbar>
<igc-column
field="CustomerID"
hidden="true">
</igc-column>
<igc-column
field="Company"
header="Company Name"
pinned="true">
</igc-column>
<igc-column
field="ContactName"
header="Contact Name">
</igc-column>
<igc-column
field="ContactTitle"
header="Contact Title">
</igc-column>
<igc-column
field="Address"
header="Address">
</igc-column>
<igc-column
field="City"
header="City">
</igc-column>
<igc-column
field="PostalCode"
header="Postal Code">
</igc-column>
<igc-column
field="Country"
header="Country">
</igc-column>
<igc-column
field="Phone">
</igc-column>
<igc-column
field="Fax">
</igc-column>
<igc-row-island
child-data-key="Orders"
auto-generate="false">
<igc-column
field="OrderDate"
header="Order Date"
data-type="date"
resizable="true">
</igc-column>
<igc-column
field="RequiredDate"
header="Required Date"
data-type="date"
resizable="true">
</igc-column>
<igc-column
field="ShippedDate"
header="Shipped Date"
data-type="date"
resizable="true">
</igc-column>
<igc-column
field="ShipName"
header="Ship Name"
data-type="string"
resizable="true"
pinned="true">
</igc-column>
<igc-column
field="ShippedVia"
header="Shipped Via"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Freight"
header="Freight"
data-type="string"
resizable="true">
</igc-column>
<igc-row-island
child-data-key="OrderDetails"
auto-generate="false">
<igc-column
field="UnitPrice"
header="Unit Price"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Quantity"
header="Quantity"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Discount"
header="Discount"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Weight"
header="Weight"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="Length"
header="Length"
data-type="string"
resizable="true">
</igc-column>
<igc-column
field="TotalPrice"
header="Total Price"
data-type="string"
resizable="true">
</igc-column>
</igc-row-island>
</igc-row-island>
</igc-hierarchical-grid>
</div>
</div>
</div>
<% if (false) { %><script src="src/index.ts"></script><% } %>
</body>
</html>
html
#grid {
--ig-grid-pinned-border-width: 5px;
--ig-grid-pinned-border-color: #FFCD0F;
--ig-grid-pinned-border-style: double;
--ig-grid-cell-active-border-color: #FFCD0F;
}
css
API リファレンス
その他のリソース
コミュニティに参加して新しいアイデアをご提案ください。