Web Components 계층적 그리드 열 고정
Web Components Hierarchical Grid의 Ignite UI for Web Components Column Pinning 기능을 사용하면 개발자가 특정 열을 원하는 순서로 잠그고 사용자가 IgcGridComponent
를 가로로 스크롤하더라도 항상 가시성을 확보할 수 있습니다. Web Components Hierarchical Grid 툴바를 통해 액세스할 수 있는 Column Pinning을 위한 통합 UI가 있습니다. 또한 개발자는 열의 고정 상태를 변경하는 사용자 지정 사용자 인터페이스를 빌드할 수 있는 유연성을 갖추고 있습니다.
Web Components Hierarchical Grid 열 고정 예제
이 예제에서는 열 하나 또는 여러 열을 의 왼쪽 또는 오른쪽 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
열 고정은 의 속성을 통해 pinned
제어됩니다 IgcColumnComponent
. 고정된 열은 기본적으로 의 왼쪽 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
또한 의 또는 unpinColumn
메소드 IgcHierarchicalGridComponent
를 사용하여 IgcHierarchicalGridComponent
pinColumn
필드 이름으로 열을 고정하거나 고정 해제할 수 있습니다.
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
구성 옵션을 통해 열 고정 위치를 변경할 수 있습니다. 열 위치를 시작 또는 끝으로 설정할 수 있습니다. 끝으로 설정하면 열이 고정 해제된 열 뒤의 그리드 끝에서 렌더링됩니다. 고정되지 않은 열은 가로로 스크롤할 수 있지만 고정된 열은 오른쪽에 고정된 상태로 유지됩니다.
<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
관련 API를 통해 사용자 정의 UI를 정의하고 열의 핀 상태를 변경할 수 있습니다.
도구 모음 대신 최종 사용자가 클릭하여 특정 열의 핀 상태를 변경할 수 있는 열 헤더에 핀 아이콘을 정의한다고 가정해 보겠습니다.
이는 사용자 정의 아이콘이 있는 열의 헤더 템플릿을 생성하여 수행할 수 있습니다.
<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
그런 다음 관련 CSS 속성을 이 클래스로 설정합니다.
#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 참조
추가 리소스
우리 커뮤니티는 활동적이며 항상 새로운 아이디어를 환영합니다.