Angular Tree Grid の Excel スタイル フィルタリング
グリッド Excel フィルタリングは、Tree Grid などの Angular テーブルに対して Excel のようなフィルタリング UI を提供します。
Angular Tree Grid Excel スタイル フィルタリングの例
import { NgModule } from "@angular/core" ;
import { FormsModule } from "@angular/forms" ;
import { BrowserModule } from "@angular/platform-browser" ;
import { BrowserAnimationsModule } from "@angular/platform-browser/animations" ;
import { AppComponent } from "./app.component" ;
import { IgxPreventDocumentScrollModule } from "./directives/prevent-scroll.directive" ;
import {
IgxTreeGridModule,
IgxInputGroupModule,
IgxButtonGroupModule
} from "igniteui-angular" ;
import { TreeGridExcelStyleFilteringSample1Component } from "./tree-grid-excel-style-filtering-sample-1/tree-grid-excel-style-filtering-sample-1.component" ;
@NgModule ({
bootstrap : [AppComponent],
declarations : [
AppComponent,
TreeGridExcelStyleFilteringSample1Component
],
imports : [
BrowserModule,
BrowserAnimationsModule,
FormsModule,
IgxPreventDocumentScrollModule,
IgxTreeGridModule,
IgxInputGroupModule,
IgxButtonGroupModule
],
providers : [],
entryComponents : [],
schemas : []
})
export class AppModule {}
ts コピー import { Component, OnInit, ViewChild } from '@angular/core' ;
import { DisplayDensity, IgxTreeGridComponent } from 'igniteui-angular' ;
import { FOODS_DATA } from '../data/foods' ;
@Component ({
selector : 'app-tree-grid-excel-style-filtering-sample-1' ,
styleUrls : ['./tree-grid-excel-style-filtering-sample-1.component.scss' ],
templateUrl : 'tree-grid-excel-style-filtering-sample-1.component.html'
})
export class TreeGridExcelStyleFilteringSample1Component implements OnInit {
@ViewChild ('treegrid1' , { read : IgxTreeGridComponent, static : true })
public treegrid1: IgxTreeGridComponent;
public data: any [];
public density: DisplayDensity = 'comfortable' ;
public displayDensities;
constructor ( ) {
}
public ngOnInit(): void {
this .data = FOODS_DATA();
this .displayDensities = [
{
label : 'compact' ,
selected : this .density === 'compact' ,
togglable : true
},
{
label : 'cosy' ,
selected : this .density === 'cosy' ,
togglable : true
},
{
label : 'comfortable' ,
selected : this .density === 'comfortable' ,
togglable : true
}
];
}
public selectDensity (event ) {
this .density = this .displayDensities[event.index].label;
this .treegrid1.displayDensity = this .displayDensities[event.index].label;
this .treegrid1.reflow();
}
public formatDate (val ) {
if (val !== 'Select All' ) {
return new Intl .DateTimeFormat('en-US' ).format(val);
} else {
return val;
}
}
public formatCurrency (val: string ) {
return parseInt (val, 10 ).toFixed(2 );
}
}
ts コピー <div class ="grid__wrapper" >
<div class ="density-chooser" >
<igx-buttongroup [values ]="displayDensities" (selected )="selectDensity($event)" > </igx-buttongroup >
</div >
<igx-tree-grid [igxPreventDocumentScroll ]="true" [moving ]="true" #treegrid1 [data ]="data" [displayDensity ]="density" [autoGenerate ]="false" height ="850px" width ="100%" [allowFiltering ]="true"
primaryKey ="ID" foreignKey ="ParentID" filterMode ="excelStyleFilter" >
<igx-grid-toolbar >
<igx-grid-toolbar-actions >
<igx-grid-toolbar-hiding > </igx-grid-toolbar-hiding >
<igx-grid-toolbar-pinning > </igx-grid-toolbar-pinning >
</igx-grid-toolbar-actions >
</igx-grid-toolbar >
<igx-column field ="ID" header ="Product ID" [dataType ]="'string'" [sortable ]="true" >
</igx-column >
<igx-column field ="Name" header ="Product Name" [dataType ]="'string'" [sortable ]="true" >
</igx-column >
<igx-column field ="UnitPrice" header ="Unit Price" dataType ="number" [sortable ]="true" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<span *ngIf ="cell.row.data.UnitPrice !== 0" > ${{val}}</span >
</ng-template >
</igx-column >
<igx-column field ="AddedDate" header ="Added Date" [dataType ]="'date'" [formatter ]="formatDate" [sortable ]="true" >
</igx-column >
<igx-column field ="Discontinued" header ="Discontinued" [dataType ]="'boolean'" [sortable ]="true" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<img *ngIf ="cell.row.data.UnitPrice !== 0 && val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/active.png" title ="Continued" alt ="Continued" />
<img *ngIf ="cell.row.data.UnitPrice !== 0 && !val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/expired.png" title ="Discontinued" alt ="Discontinued" />
</ng-template >
</igx-column >
</igx-tree-grid >
</div >
html コピー .grid__wrapper {
margin : 16px ;
}
.gridSample__filter {
width : rem(200px );
}
.cell__inner ,
.cell__inner_2 {
display : flex;
align-items : center;
height : 100% ;
}
.cell__inner {
position : relative;
justify-content : space-between;
}
.density-chooser {
margin-bottom : 16px ;
}
igx-buttongroup{
display : block;
width : 500px ;
}
scss コピー
このサンプルが気に入りましたか? 完全な Ignite UI for Angularツールキットにアクセスして、すばやく独自のアプリの作成を開始します。無料でダウンロードできます。
使用方法
Excel スタイル フィルタリングをオンにするには、2 つの入力を設定します。allowFiltering
を true
に設定し、filterMode
を excelStyleFilter
に設定してください。
<igx-tree-grid [data ]="data" [autoGenerate ]="true" [allowFiltering ]="true" [filterMode ]="'excelStyleFilter'" >
</igx-tree-grid >
html
インタラクション
特定の列のフィルター メニューを開くには、ヘッダーの Angular フィルター アイコンをクリックします。さらに、選択したヘッダーで Ctrl + Shift + L
の組み合わせを使用できます。列でフィルタリング機能と並べ替え、ピン固定、移動、選択、非表示が設定された場合、オンになっている機能のボタンが表示されます。
フィルターが適用されていない場合、リストのすべての項目が選択されます。リストの上の入力からフィルターされます。データのフィルターは、リストで項目を選択/非選択して [適用] ボタンをクリックするか、あるいは Enter
を押します。リスト項目に適用したフィルタリングは、equals
オペレーターでフィルター式を作成します。各式間のロジック オペレーターは OR
です。
検索ボックスに入力してフィルターを適用すると、検索条件に一致する項目のみが選択されます。ただし、現在フィルターされている項目に項目を追加したい場合は、[現在の選択をフィルターに追加]
オプションを選択する必要があります。
フィルターをクリアしたい場合、[すべて選択] オプションをチェックして [適用] ボタンを押します。
異なる式でフィルターを適用する場合、Text フィルター をクリックし、特定の列で使用できるフィルター演算子のサブメニューを開きます。いずれかを選択してカスタム フィルター ダイアログを開き、フィルターとロジック演算子を使用して式を追加できます。[クリア] ボタンでフィルターをクリアできます。
メニュー機能の構成
ソート、移動、ピン固定、非表示の機能をフィルター メニューから削除できます。これらを制御する入力は以下のとおりです: sortable
、selected
、disablePinning
、disableHiding
。
<igx-tree-grid #treegrid1 [data ]="data" [autoGenerate ]="false" height ="480px" width ="100%" [moving ]="true" [allowFiltering ]="true"
primaryKey ="ID" foreignKey ="ParentID" filterMode ="excelStyleFilter" >
<igx-column field ="ID" header ="Order ID" [dataType ]="'string'" > </igx-column >
<igx-column field ="Name" header ="Order Product" [dataType ]="'string'" [sortable ]="true" > </igx-column >
<igx-column field ="Category" header ="Category" [dataType ]="'string'" [sortable ]="true" > </igx-column >
<igx-column field ="Units" header ="Units" [dataType ]="'number'" [sortable ]="true" > </igx-column >
<igx-column field ="UnitPrice" header ="Unit Price" [dataType ]="'currency'" [pipeArgs ]="formatOptions" > </igx-column >
<igx-column field ="Price" header ="Price" [dataType ]="'currency'" [pipeArgs ]="formatOptions" [sortable ]="false" [disablePinning ]="true" [disableHiding ]="true" > </igx-column >
<igx-column field ="OrderDate" header ="Order Date" [dataType ]="'date'" [formatter ]="formatDate" [sortable ]="false" > </igx-column >
<igx-column field ="Delivered" header ="Deliverued" [dataType ]="'boolean'" [sortable ]="false" >
<ng-template igxCell let-cell ="cell" let-val >
<img *ngIf ="val" src ="assets/images/grid/active.png" title ="Delivered" alt ="Delivered" />
<img *ngIf ="!val" src ="assets/images/grid/expired.png" title ="Undelivered" alt ="Undelivered" />
</ng-template >
</igx-column >
</igx-tree-grid >
html
以下のサンプルでは、'Order Product'、'Category'、および 'Units' 列で 3 つの機能がすべて有効化され、'Price' で 3 つすべてが無効化され、'Order Date' と 'Delivered' でピン固定と非表示のみが設定されています。
import { NgModule } from "@angular/core" ;
import { FormsModule } from "@angular/forms" ;
import { BrowserModule } from "@angular/platform-browser" ;
import { BrowserAnimationsModule } from "@angular/platform-browser/animations" ;
import { AppComponent } from "./app.component" ;
import { IgxPreventDocumentScrollModule } from "./directives/prevent-scroll.directive" ;
import {
IgxTreeGridModule,
IgxInputGroupModule
} from "igniteui-angular" ;
import { TreeGridExcelStyleFilteringSample2Component } from "./tree-grid-excel-style-filtering-sample-2/tree-grid-excel-style-filtering-sample-2.component" ;
@NgModule ({
bootstrap : [AppComponent],
declarations : [
AppComponent,
TreeGridExcelStyleFilteringSample2Component
],
imports : [
BrowserModule,
BrowserAnimationsModule,
FormsModule,
IgxPreventDocumentScrollModule,
IgxTreeGridModule,
IgxInputGroupModule
],
providers : [],
entryComponents : [],
schemas : []
})
export class AppModule {}
ts コピー import { Component, OnInit, ViewChild } from '@angular/core' ;
import { IgxTreeGridComponent } from 'igniteui-angular' ;
import { FOODS_DATA } from '../data/foods' ;
@Component ({
selector : 'app-tree-grid-excel-style-filtering-sample-2' ,
styleUrls : ['./tree-grid-excel-style-filtering-sample-2.component.scss' ],
templateUrl : 'tree-grid-excel-style-filtering-sample-2.component.html'
})
export class TreeGridExcelStyleFilteringSample2Component implements OnInit {
@ViewChild ('treegrid1' , { read : IgxTreeGridComponent, static : true })
public treegrid1: IgxTreeGridComponent;
public data: any [];
constructor ( ) {
}
public ngOnInit(): void {
this .data = FOODS_DATA();
}
public formatDate (val ) {
if (val !== 'Select All' ) {
return new Intl .DateTimeFormat('en-US' ).format(val);
} else {
return val;
}
}
public formatCurrency (val: string ) {
return parseInt (val, 10 ).toFixed(2 );
}
}
ts コピー <div class ="grid__wrapper" >
<igx-tree-grid [igxPreventDocumentScroll ]="true" #treegrid1 [data ]="data" [autoGenerate ]="false" height ="850px" width ="100%" [allowFiltering ]="true"
primaryKey ="ID" [moving ]="true" foreignKey ="ParentID" filterMode ="excelStyleFilter" >
<igx-grid-toolbar >
<igx-grid-toolbar-actions >
<igx-grid-toolbar-hiding > </igx-grid-toolbar-hiding >
<igx-grid-toolbar-pinning > </igx-grid-toolbar-pinning >
</igx-grid-toolbar-actions >
</igx-grid-toolbar >
<igx-column field ="ID" header ="Product ID" [dataType ]="'string'" >
</igx-column >
<igx-column field ="Name" header ="Product Name" [sortable ]="true" [dataType ]="'string'" >
</igx-column >
<igx-column field ="UnitPrice" header ="Unit Price" dataType ="number" [sortable ]="false" [disablePinning ]="true" [disableHiding ]="true" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<span *ngIf ="cell.row.data.UnitPrice !== 0" > ${{val}}</span >
</ng-template >
</igx-column >
<igx-column field ="AddedDate" header ="Added Date" [dataType ]="'date'" [formatter ]="formatDate" [sortable ]="false" >
</igx-column >
<igx-column field ="Discontinued" header ="Discontinued" [dataType ]="'boolean'" [sortable ]="true" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<img *ngIf ="cell.row.data.UnitPrice !== 0 && val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/active.png" title ="Continued" alt ="Continued" />
<img *ngIf ="cell.row.data.UnitPrice !== 0 && !val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/expired.png" title ="Discontinued" alt ="Discontinued" />
</ng-template >
</igx-column >
</igx-tree-grid >
</div >
html コピー .grid__wrapper {
margin : 16px ;
}
.gridSample__filter {
width : rem(200px );
}
.cell__inner ,
.cell__inner_2 {
display : flex;
align-items : center;
height : 100% ;
}
.cell__inner {
position : relative;
justify-content : space-between;
}
scss コピー
テンプレート
列機能を無効にせずに Excel スタイル フィルター メニューをさらにカスタマイズする場合は、カスタム テンプレートを使用できます。Excel スタイル フィルター メニューには、テンプレート化のための 2 つのディレクティブがあります:
IgxExcelStyleColumnOperationsTemplateDirective
- ソート、移動、固定などのすべての列操作で領域を再テンプレート化します。
IgxExcelStyleFilterOperationsTemplateDirective
- すべてのフィルター固有の操作で領域を再テンプレート化します。
これらの領域の 1 つだけ、または両方を再テンプレート化できます。これらのディレクティブ内にカスタム コンテンツを配置したり、組み込みの Excel スタイル フィルタリング コンポーネントを使用できます。
次のコードは、igx-excel-style-header
、igx-excel-style-sorting
および igx-excel-style-search
コンポーネントを使用してカスタム Excel スタイル フィルター メニューを定義する方法を示しています。
<igx-tree-grid #treegrid1 [data ]="data" [autoGenerate ]="false" height ="480px" width ="100%" [allowFiltering ]="true"
primaryKey ="ID" foreignKey ="ParentID" filterMode ="excelStyleFilter" >
<igx-grid-excel-style-filtering [minHeight ]="'380px'" [maxHeight ]="'500px'" >
<igx-excel-style-column-operations >
<igx-excel-style-header
[showPinning ]="true"
[showHiding ]="true"
>
</igx-excel-style-header >
<igx-excel-style-sorting > </igx-excel-style-sorting >
</igx-excel-style-column-operations >
<igx-excel-style-filter-operations >
<igx-excel-style-search > </igx-excel-style-search >
</igx-excel-style-filter-operations >
</igx-grid-excel-style-filtering >
...
</igx-tree-grid >
html
igxExcelStyleHeaderIcon
ディレクティブを使用して、列ヘッダーの Excel スタイル フィルタリング アイコンを再テンプレート化することもできます。
<igx-tree-grid ... >
<ng-template igxExcelStyleHeaderIcon >
<igx-icon > filter_alt</igx-icon >
</ng-template >
</igx-tree-grid >
html
import { NgModule } from "@angular/core" ;
import { FormsModule } from "@angular/forms" ;
import { BrowserModule } from "@angular/platform-browser" ;
import { BrowserAnimationsModule } from "@angular/platform-browser/animations" ;
import { AppComponent } from "./app.component" ;
import { IgxPreventDocumentScrollModule } from "./directives/prevent-scroll.directive" ;
import {
IgxTreeGridModule,
IgxInputGroupModule
} from "igniteui-angular" ;
import { TreeGridExcelStyleFilteringSample3Component } from "./tree-grid-excel-style-filtering-sample-3/tree-grid-excel-style-filtering-sample-3.component" ;
@NgModule ({
bootstrap : [AppComponent],
declarations : [
AppComponent,
TreeGridExcelStyleFilteringSample3Component
],
imports : [
BrowserModule,
BrowserAnimationsModule,
FormsModule,
IgxPreventDocumentScrollModule,
IgxTreeGridModule,
IgxInputGroupModule
],
providers : [],
entryComponents : [],
schemas : []
})
export class AppModule {}
ts コピー import { Component, OnInit, ViewChild } from '@angular/core' ;
import { IgxTreeGridComponent } from 'igniteui-angular' ;
import { FOODS_DATA } from '../data/foods' ;
@Component ({
selector : 'app-tree-grid-excel-style-filtering-sample-3' ,
styleUrls : ['./tree-grid-excel-style-filtering-sample-3.component.scss' ],
templateUrl : 'tree-grid-excel-style-filtering-sample-3.component.html'
})
export class TreeGridExcelStyleFilteringSample3Component implements OnInit {
@ViewChild ('treegrid1' , { read : IgxTreeGridComponent, static : true })
public treegrid1: IgxTreeGridComponent;
public data: any [];
constructor ( ) {
}
public ngOnInit(): void {
this .data = FOODS_DATA();
}
public formatDate (val ) {
if (val !== 'Select All' ) {
return new Intl .DateTimeFormat('en-US' ).format(val);
} else {
return val;
}
}
public formatCurrency (val: string ) {
return parseInt (val, 10 ).toFixed(2 );
}
}
ts コピー <div class ="grid__wrapper" >
<igx-tree-grid [igxPreventDocumentScroll ]="true" #treegrid1 [data ]="data" [autoGenerate ]="false" [moving ]="true" height ="650px" width ="100%" [allowFiltering ]="true"
primaryKey ="ID" foreignKey ="ParentID" filterMode ="excelStyleFilter" >
<igx-grid-toolbar >
<igx-grid-toolbar-actions >
<igx-grid-toolbar-hiding > </igx-grid-toolbar-hiding >
</igx-grid-toolbar-actions >
</igx-grid-toolbar >
<ng-template igxExcelStyleHeaderIcon >
<igx-icon > filter_alt</igx-icon >
</ng-template >
<igx-grid-excel-style-filtering [minHeight ]="'380px'" [maxHeight ]="'500px'" >
<igx-excel-style-column-operations >
<igx-excel-style-header
[showPinning ]="true"
[showHiding ]="true"
>
</igx-excel-style-header >
<igx-excel-style-sorting > </igx-excel-style-sorting >
</igx-excel-style-column-operations >
<igx-excel-style-filter-operations >
<igx-excel-style-search > </igx-excel-style-search >
</igx-excel-style-filter-operations >
</igx-grid-excel-style-filtering >
<igx-column field ="ID" header ="Product ID" [dataType ]="'string'" >
</igx-column >
<igx-column field ="Name" header ="Product Name" [sortable ]="true" [dataType ]="'string'" >
</igx-column >
<igx-column field ="UnitPrice" header ="Unit Price" dataType ="number" [sortable ]="false" [disablePinning ]="true" [disableHiding ]="true" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<span *ngIf ="cell.row.data.UnitPrice !== 0" > ${{val}}</span >
</ng-template >
</igx-column >
<igx-column field ="AddedDate" header ="Added Date" [dataType ]="'date'" [formatter ]="formatDate" [sortable ]="false" >
</igx-column >
<igx-column field ="Discontinued" header ="Discontinued" [dataType ]="'boolean'" [sortable ]="true" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<img *ngIf ="cell.row.data.UnitPrice !== 0 && val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/active.png" title ="Continued" alt ="Continued" />
<img *ngIf ="cell.row.data.UnitPrice !== 0 && !val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/expired.png" title ="Discontinued" alt ="Discontinued" />
</ng-template >
</igx-column >
</igx-tree-grid >
</div >
html コピー .grid__wrapper {
margin : 16px ;
}
.gridSample__filter {
width : rem(200px );
}
.cell__inner ,
.cell__inner_2 {
display : flex;
align-items : center;
height : 100% ;
}
.cell__inner {
position : relative;
justify-content : space-between;
}
scss コピー
以下は、使用可能な Excel スタイルフィルタリング コンポーネントの完全なリストです:
一意の列値ストラテジ
Excel スタイル フィルタリング ダイアログ内のリスト項目は、それぞれの列の一意の値を表します。これらの値は手動で提供し、ロード オン デマンドすることができます。詳細については、Tree Grid リモート データ操作
で説明されています。
書式設定された値のフィルタリング ストラテジ
デフォルトで、Tree Grid コンポーネントは元のセル値に基づいてデータをフィルターしますが、場合によっては書式設定された値に基づいてデータをフィルターすることができます。 そのためには、TreeGridFormattedValuesFilteringStrategy
を使用します。 以下のサンプルは、列の数値を文字列として書式設定し、文字列値に基づいて Tree Grid をフィルターする方法を示します。
import { NgModule } from "@angular/core" ;
import { FormsModule } from "@angular/forms" ;
import { BrowserModule } from "@angular/platform-browser" ;
import { BrowserAnimationsModule } from "@angular/platform-browser/animations" ;
import { AppComponent } from "./app.component" ;
import { IgxPreventDocumentScrollModule } from "./directives/prevent-scroll.directive" ;
import { IgxTreeGridModule } from "igniteui-angular" ;
import { TreeGridFormattedFilteringStrategyComponent } from "./tree-grid-formatted-filtering-strategy/tree-grid-formatted-filtering-strategy.component" ;
@NgModule ({
bootstrap : [AppComponent],
declarations : [
AppComponent,
TreeGridFormattedFilteringStrategyComponent
],
imports : [
BrowserModule,
BrowserAnimationsModule,
FormsModule,
IgxPreventDocumentScrollModule,
IgxTreeGridModule
],
providers : [],
entryComponents : [],
schemas : []
})
export class AppModule {}
ts コピー import { Component, OnInit, ViewChild } from '@angular/core' ;
import { IgxTreeGridComponent, TreeGridFormattedValuesFilteringStrategy } from 'igniteui-angular' ;
import { FOODS_DATA } from '../data/foods' ;
@Component ({
selector : 'app-tree-grid-formatted-filtering-strategy' ,
styleUrls : ['./tree-grid-formatted-filtering-strategy.component.scss' ],
templateUrl : 'tree-grid-formatted-filtering-strategy.component.html'
})
export class TreeGridFormattedFilteringStrategyComponent implements OnInit {
@ViewChild ('treegrid1' , { read : IgxTreeGridComponent, static : true })
public treegrid1: IgxTreeGridComponent;
public data: any [];
public filterStrategy = new TreeGridFormattedValuesFilteringStrategy();
public ngOnInit(): void {
this .data = FOODS_DATA();
}
public formatPrice (value: number ) {
return value ? value < 15 ? 'low' : value > 50 ? 'high' : 'medium' : '' ;
}
}
ts コピー <div class ="grid__wrapper" >
<igx-tree-grid [igxPreventDocumentScroll ]="true" #treegrid1 [data ]="data" [autoGenerate ]="false" height ="600px" width ="100%"
[allowFiltering ]="true" filterMode ="excelStyleFilter" [filterStrategy ]="filterStrategy"
primaryKey ="ID" foreignKey ="ParentID" >
<igx-column field ="ID" header ="Product ID" [dataType ]="'string'" [sortable ]="true" [disableHiding ]="true" >
</igx-column >
<igx-column field ="Name" header ="Product Name" [dataType ]="'string'" [sortable ]="true" [disableHiding ]="true" >
</igx-column >
<igx-column field ="UnitPrice" header ="Unit Price Category" dataType ="string" [sortable ]="true" [disableHiding ]="true" [formatter ]="formatPrice" >
</igx-column >
<igx-column field ="AddedDate" header ="Added Date" [dataType ]="'date'" [sortable ]="true" [disableHiding ]="true" >
</igx-column >
<igx-column field ="Discontinued" header ="Discontinued" [dataType ]="'boolean'" [sortable ]="true" [disableHiding ]="true" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<img *ngIf ="cell.row.data.UnitPrice !== 0 && val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/active.png" title ="Continued" alt ="Continued" />
<img *ngIf ="cell.row.data.UnitPrice !== 0 && !val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/expired.png" title ="Discontinued" alt ="Discontinued" />
</ng-template >
</igx-column >
</igx-tree-grid >
</div >
html コピー .grid__wrapper {
margin : 16px ;
}
scss コピー
データの同じフィールドに複数の列がバインドされていて、1 つの列にフォーマッタがある場合、書式設定された値のフィルタリング ストラテジは正しく動作しません。
ツリー フィルター ビュー
デフォルトでは、Excel スタイル フィルタリング ダイアログはリスト ビューで項目を表示します。それらをツリー ビューに表示するには、TreeGridFilteringStrategy
を使用して、列フィールド名の配列を指定します。フィルター項目は、指定された列の場合はツリー ビューに、他のすべての列の場合はリスト ビューに表示されます。次のサンプルは、最初の列のツリー ビューにフィルター項目を表示する方法を示しています:
import { NgModule } from "@angular/core" ;
import { FormsModule } from "@angular/forms" ;
import { BrowserModule } from "@angular/platform-browser" ;
import { BrowserAnimationsModule } from "@angular/platform-browser/animations" ;
import { AppComponent } from "./app.component" ;
import { IgxPreventDocumentScrollModule } from "./directives/prevent-scroll.directive" ;
import { IgxTreeGridModule } from "igniteui-angular" ;
import { TreeGridTreeFilterViewComponent } from "./tree-grid-tree-filter-view/tree-grid-tree-filter-view.component" ;
@NgModule ({
bootstrap : [AppComponent],
declarations : [
AppComponent,
TreeGridTreeFilterViewComponent
],
imports : [
BrowserModule,
BrowserAnimationsModule,
FormsModule,
IgxPreventDocumentScrollModule,
IgxTreeGridModule
],
providers : [],
entryComponents : [],
schemas : []
})
export class AppModule {}
ts コピー import { Component, OnInit, ViewChild } from '@angular/core' ;
import { IgxTreeGridComponent, TreeGridFilteringStrategy } from 'igniteui-angular' ;
import { FOODS_DATA } from '../data/foods' ;
@Component ({
selector : 'app-tree-grid-tree-filter-view' ,
styleUrls : ['./tree-grid-tree-filter-view.component.scss' ],
templateUrl : 'tree-grid-tree-filter-view.component.html'
})
export class TreeGridTreeFilterViewComponent implements OnInit {
@ViewChild ('treegrid1' , { read : IgxTreeGridComponent, static : true })
public treegrid1: IgxTreeGridComponent;
public data: any [];
public filterStrategy = new TreeGridFilteringStrategy(['Name' ]);
public ngOnInit(): void {
this .data = FOODS_DATA();
}
}
ts コピー <div class ="grid__wrapper" >
<igx-tree-grid [igxPreventDocumentScroll ]="true" #treegrid1 [data ]="data" [autoGenerate ]="false" height ="600px" width ="100%"
[allowFiltering ]="true" filterMode ="excelStyleFilter" [filterStrategy ]="filterStrategy"
primaryKey ="ID" foreignKey ="ParentID" >
<igx-column field ="Name" header ="Product Name" [dataType ]="'string'" [sortable ]="true" [disableHiding ]="true" >
</igx-column >
<igx-column field ="UnitPrice" header ="Unit Price Category" dataType ="number" [sortable ]="true" [disableHiding ]="true" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<span *ngIf ="cell.row.data.UnitPrice !== 0" > ${{val}}</span >
</ng-template >
</igx-column >
<igx-column field ="AddedDate" header ="Added Date" [dataType ]="'date'" [sortable ]="true" [disableHiding ]="true" >
</igx-column >
<igx-column field ="Discontinued" header ="Discontinued" [dataType ]="'boolean'" [sortable ]="true" [disableHiding ]="true" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<img *ngIf ="cell.row.data.UnitPrice !== 0 && val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/active.png" title ="Continued" alt ="Continued" />
<img *ngIf ="cell.row.data.UnitPrice !== 0 && !val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/expired.png" title ="Discontinued" alt ="Discontinued" />
</ng-template >
</igx-column >
</igx-tree-grid >
</div >
html コピー .grid__wrapper {
margin : 16px ;
}
scss コピー
外部の Excel スタイル フィルタリング
上記デモで示されるように、Excel スタイル フィルタリング ダイアログのデフォルトの外観は Tree Grid 内にあります。このダイアログは、フィルターを構成するときにのみ表示されます。ダイアログはグリッドの外部でスタンドアロン コンポーネントとして使用すると、常に表示になります。以下のデモでは、Excel スタイル フィルタリングが Tree Grid とは別に宣言されます。
デモ
import { NgModule } from "@angular/core" ;
import { FormsModule } from "@angular/forms" ;
import { BrowserModule } from "@angular/platform-browser" ;
import { BrowserAnimationsModule } from "@angular/platform-browser/animations" ;
import { AppComponent } from "./app.component" ;
import { IgxPreventDocumentScrollModule } from "./directives/prevent-scroll.directive" ;
import { IgxTreeGridModule } from "igniteui-angular" ;
import { TreeGridExternalExcelStyleFilteringComponent } from "./tree-grid-external-excel-style-filtering/tree-grid-external-excel-style-filtering.component" ;
@NgModule ({
bootstrap : [AppComponent],
declarations : [
AppComponent,
TreeGridExternalExcelStyleFilteringComponent
],
imports : [
BrowserModule,
BrowserAnimationsModule,
FormsModule,
IgxPreventDocumentScrollModule,
IgxTreeGridModule
],
providers : [],
entryComponents : [],
schemas : []
})
export class AppModule {}
ts コピー import { Component, ViewChild, ChangeDetectionStrategy, OnInit } from '@angular/core' ;
import { FOODS_DATA } from '../data/foods' ;
@Component ({
changeDetection : ChangeDetectionStrategy.OnPush,
selector : 'app-tree-grid-external-excel-style-filtering' ,
templateUrl : './tree-grid-external-excel-style-filtering.component.html' ,
styleUrls : ['./tree-grid-external-excel-style-filtering.component.scss' ]
})
export class TreeGridExternalExcelStyleFilteringComponent implements OnInit {
public data: any [];
constructor ( ) { }
public ngOnInit ( ) {
this .data = FOODS_DATA();
}
}
ts コピー <div class ="grid__wrapper" >
<div class ="flex-column" >
<igx-select #gridColumns value ="ID" class ="igSelect" >
<label igxLabel > Columns:</label >
<igx-select-item *ngFor ="let c of tGrid.columns" [value ]="c.field" >
{{ c.field }}
</igx-select-item >
</igx-select >
<igx-grid-excel-style-filtering [column ]="tGrid.getColumnByName(gridColumns.value)" >
</igx-grid-excel-style-filtering >
</div >
<igx-tree-grid [igxPreventDocumentScroll ]="true" [data ]="data" [autoGenerate ]="false" height ="653px" width ="800px" primaryKey ="ID"
foreignKey ="ParentID" #tGrid >
<igx-column field ="ID" header ="Product ID" [dataType ]="'string'" >
</igx-column >
<igx-column field ="Name" header ="Product Name" [dataType ]="'string'" >
</igx-column >
<igx-column field ="UnitPrice" header ="Unit Price" dataType ="number" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<span *ngIf ="cell.row.data.UnitPrice !== 0" > ${{val}}</span >
</ng-template >
</igx-column >
<igx-column field ="AddedDate" header ="Added Date" [dataType ]="'date'" >
</igx-column >
<igx-column field ="Discontinued" header ="Discontinued" [dataType ]="'boolean'" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<img *ngIf ="cell.row.data.UnitPrice !== 0 && val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/active.png"
title ="Continued" alt ="Continued" />
<img *ngIf ="cell.row.data.UnitPrice !== 0 && !val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/expired.png"
title ="Discontinued" alt ="Discontinued" />
</ng-template >
</igx-column >
</igx-tree-grid >
</div >
html コピー .grid__wrapper {
display : flex;
flex-flow : row;
height : 650px ;
margin : 15px ;
justify-content : center;
}
.flex-column {
display : flex;
flex-flow : column;
height : 650px ;
margin-left : 1px ;
}
.igSelect {
margin-left : 1px ;
}
scss コピー
使用方法
Excel スタイル フィルタリング コンポーネントを設定するには、column
プロパティを Tree Grid 列の 1 つに設定する必要があります。上記のサンプルで、column
プロパティは Tree Grid 列を表示する IgxSelectComponent の値にバインドされています。
<igx-select #gridColums value ="ID" >
<label igxLabel > Columns:</label >
<igx-select-item *ngFor ="let c of treegrid1.columns" [value ]="c.field" >
{{ c.field }}
</igx-select-item >
</igx-select >
<igx-grid-excel-style-filtering [column ]="treegrid1.getColumnByName(gridColums.value)" >
</igx-grid-excel-style-filtering >
html
表示要素が重なる場合のアウトレット設定
Tree Grid の z-index
は、DOM の各グリッドに個別の重ね合わせコンテキストを作成します。これにより、グリッドのすべての子孫要素が互いに重ね合うことなく意図したとおりに描画されます。
ただし、グリッドの外側にある要素 (Excel スタイル フィルターなど) は、同じ z-index
を持つ外側の要素 (たとえば、2 つのグリッドが上下に重ねる) と競合し、誤った描画が発生します。この問題の解決策は、outlet
プロパティを外部のアウトレット ディレクティブに設定し、オーバーレイ要素が常に上に表示されるようにすることです。
デモ
import { NgModule } from "@angular/core" ;
import { FormsModule } from "@angular/forms" ;
import { BrowserModule } from "@angular/platform-browser" ;
import { BrowserAnimationsModule } from "@angular/platform-browser/animations" ;
import { AppComponent } from "./app.component" ;
import { IgxPreventDocumentScrollModule } from "./directives/prevent-scroll.directive" ;
import {
IgxTreeGridModule,
IgxToggleModule
} from "igniteui-angular" ;
import { TreeGridExternalOutletComponent } from "./tree-grid-external-outlet/tree-grid-external-outlet-sample.component" ;
@NgModule ({
bootstrap : [AppComponent],
declarations : [
AppComponent,
TreeGridExternalOutletComponent
],
imports : [
BrowserModule,
BrowserAnimationsModule,
FormsModule,
IgxPreventDocumentScrollModule,
IgxTreeGridModule,
IgxToggleModule
],
providers : [],
entryComponents : [],
schemas : []
})
export class AppModule {}
ts コピー import { Component, OnInit } from '@angular/core' ;
import { FOODS_DATA } from '../data/foods' ;
@Component ({
selector : 'app-tree-grid-external-outlet' ,
styleUrls : ['./tree-grid-external-outlet-sample.component.scss' ],
templateUrl : 'tree-grid-external-outlet-sample.component.html'
})
export class TreeGridExternalOutletComponent implements OnInit {
public data: any [];
constructor ( ) {
}
public ngOnInit(): void {
this .data = FOODS_DATA();
}
}
ts コピー <div >
<igx-tree-grid [igxPreventDocumentScroll ]="true" #tGrid1 [data ]="data" [autoGenerate ]="false" height ="300px" width ="100%"
[allowFiltering ]="true" primaryKey ="ID" [moving ]="true" foreignKey ="ParentID" filterMode ="excelStyleFilter"
[outlet ]="filteringOverlayOutlet" >
<igx-grid-toolbar >
<igx-grid-toolbar-actions >
<igx-grid-toolbar-hiding > </igx-grid-toolbar-hiding >
</igx-grid-toolbar-actions >
</igx-grid-toolbar >
<igx-column field ="ID" header ="Product ID" [dataType ]="'string'" [sortable ]="true" >
</igx-column >
<igx-column field ="Name" header ="Product Name" [dataType ]="'string'" [sortable ]="true" >
</igx-column >
<igx-column field ="UnitPrice" header ="Unit Price" dataType ="number" [sortable ]="true" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<span *ngIf ="cell.row.data.UnitPrice !== 0" > ${{val}}</span >
</ng-template >
</igx-column >
<igx-column field ="AddedDate" header ="Added Date" [dataType ]="'date'" [sortable ]="true" >
</igx-column >
<igx-column field ="Discontinued" header ="Discontinued" [dataType ]="'boolean'" [sortable ]="true"
>
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<img *ngIf ="cell.row.data.UnitPrice !== 0 && val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/active.png"
title ="Continued" alt ="Continued" />
<img *ngIf ="cell.row.data.UnitPrice !== 0 && !val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/expired.png"
title ="Discontinued" alt ="Discontinued" />
</ng-template >
</igx-column >
</igx-tree-grid >
<br >
<igx-tree-grid [igxPreventDocumentScroll ]="true" #tGrid2 [data ]="data" [autoGenerate ]="false" height ="300px" width ="100%"
[allowFiltering ]="true" primaryKey ="ID" foreignKey ="ParentID" filterMode ="excelStyleFilter"
[outlet ]="filteringOverlayOutlet" >
<igx-grid-toolbar >
<igx-grid-toolbar-actions >
<igx-grid-toolbar-hiding > </igx-grid-toolbar-hiding >
</igx-grid-toolbar-actions >
</igx-grid-toolbar >
<igx-column field ="ID" header ="Product ID" [dataType ]="'string'" [sortable ]="true" >
</igx-column >
<igx-column field ="Name" header ="Product Name" [dataType ]="'string'" [sortable ]="true" >
</igx-column >
<igx-column field ="UnitPrice" header ="Unit Price" dataType ="number" [sortable ]="true" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<span *ngIf ="cell.row.data.UnitPrice !== 0" > ${{val}}</span >
</ng-template >
</igx-column >
<igx-column field ="AddedDate" header ="Added Date" [dataType ]="'date'" [sortable ]="true" >
</igx-column >
<igx-column field ="Discontinued" header ="Discontinued" [dataType ]="'boolean'" [sortable ]="true"
>
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<img *ngIf ="cell.row.data.UnitPrice !== 0 && val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/active.png"
title ="Continued" alt ="Continued" />
<img *ngIf ="cell.row.data.UnitPrice !== 0 && !val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/expired.png"
title ="Discontinued" alt ="Discontinued" />
</ng-template >
</igx-column >
</igx-tree-grid >
</div >
<div #filteringOverlayOutlet ="overlay-outlet" igxOverlayOutlet > </div >
html コピー .grid__wrapper {
margin : 0 16px ;
padding-top : 10px ;
}
scss コピー
スタイル設定
ページネーターのスタイル設定を始めるには、すべてのテーマ関数とコンポーネントミックスインが存在する index
ファイルをインポートする必要があります。
@use "igniteui-angular/theming" as *;
scss
Excel スタイルのフィルタリング ダイアログは、filtering-row-background
パラメーターを使用して、グリッドのテーマから背景色を取得します。背景を変更するには、カスタム テーマを作成する必要があります。
$custom-grid : grid-theme(
$filtering-row-background : #ffcd0f
);
scss
ボタン、チェックボックス、リスト、さらにはドロップダウンなど、フィルタリング ダイアログのような Excel 内には明らかに多くのコンポーネントがあります。スタイルを設定するには、それぞれに個別のテーマを作成する必要があります。
$dark-button : button-theme(
$background : #ffcd0f ,
$foreground : #292826 ,
$hover-background : #292826 ,
$hover-foreground : #ffcd0f
);
$dark-input-group : input-group-theme(
$box-background : #ffcd0f ,
$idle-text-color : #292826 ,
$focused-text-color : #292826 ,
$filled-text-color : #292826
);
$custom-list : list-theme(
$background : #ffcd0f
);
$custom-checkbox : checkbox-theme(
$empty-color : #292826 ,
$fill-color : #292826 ,
$tick-color : #ffcd0f ,
$label-color : #292826
);
$custom-drop-down : drop-down-theme(
$background-color : #ffcd0f ,
$item-text-color : #292826 ,
$hover-item-background : #292826 ,
$hover-item-text-color : #ffcd0f
);
scss
上記のようにカラーの値をハードコーディングする代わりに、palette
および color
関数を使用してカラーに関してより高い柔軟性を実現することができます。使い方の詳細についてはパレット
のトピックをご覧ください。
この例では、リストされたコンポーネントのパラメーターの一部のみを変更しましたが、button-theme
、checkbox-theme
、drop-down-theme
、input-group-theme
、list-theme
テーマは、それぞれのスタイルを制御するためのより多くのパラメーターを提供します。
最後の手順は、それぞれのテーマを持つコンポーネント ミックスインを含める ことです。また、入力のプレース ホルダーの色プロパティを設定します。
@include css-vars($custom-drop-down );
@include css-vars($custom-grid );
.igx-excel-filter ,
.igx-excel-filter__secondary {
@include css-vars($dark-button );
@include css-vars($dark-input-group );
@include css-vars($custom-list );
@include css-vars($custom-checkbox );
.igx-input-group__input ::placeholder {
color : #ffcd0f ;
}
}
scss
.igx-excel-filter
と .igx-excel-filter__secondary
内のほとんどのコンポーネントのミックスインをスコープするため、これらのカスタムテーマは、Excel スタイル フィルタリング ダイアログとそのすべてのサブダイアログにネストされたコンポーネントのみに影響します。そうでない場合、他のボタン、チェックボックス、入力グループ、およびリストも影響を受けます。
コンポーネントが Emulated
ViewEncapsulation を使用している場合、::ng-deep
を使用してこのカプセル化を解除する必要があります。
:host {
::ng-deep {
@include css-vars($custom-drop-down );
@include css-vars($custom-grid );
.igx-excel-filter ,
.igx-excel-filter__secondary {
@include css-vars($dark-button );
@include css-vars($dark-input-group );
@include css-vars($custom-list );
@include css-vars($custom-checkbox );
.igx-input-group__input ::placeholder {
color : #ffcd0f ;
}
}
}
}
scss
デモ
import { NgModule } from "@angular/core" ;
import { FormsModule } from "@angular/forms" ;
import { BrowserModule } from "@angular/platform-browser" ;
import { BrowserAnimationsModule } from "@angular/platform-browser/animations" ;
import { AppComponent } from "./app.component" ;
import { IgxPreventDocumentScrollModule } from "./directives/prevent-scroll.directive" ;
import { IgxTreeGridModule } from "igniteui-angular" ;
import { TreeGridExcelStyleFilteringStyleComponent } from "./tree-grid-excel-style-filtering-style/tree-grid-excel-style-filtering-style.component" ;
@NgModule ({
bootstrap : [AppComponent],
declarations : [
AppComponent,
TreeGridExcelStyleFilteringStyleComponent
],
imports : [
BrowserModule,
BrowserAnimationsModule,
FormsModule,
IgxPreventDocumentScrollModule,
IgxTreeGridModule
],
providers : [],
entryComponents : [],
schemas : []
})
export class AppModule {}
ts コピー import { Component, OnInit, ViewChild } from '@angular/core' ;
import { IgxTreeGridComponent } from 'igniteui-angular' ;
import { FOODS_DATA } from '../data/foods' ;
@Component ({
selector : 'app-tree-grid-excel-style-filtering-style' ,
styleUrls : ['./tree-grid-excel-style-filtering-style.component.scss' ],
templateUrl : 'tree-grid-excel-style-filtering-style.component.html'
})
export class TreeGridExcelStyleFilteringStyleComponent implements OnInit {
@ViewChild ('treegrid1' , { read : IgxTreeGridComponent, static : true })
public treegrid1: IgxTreeGridComponent;
public data: any [];
constructor ( ) {
}
public ngOnInit(): void {
this .data = FOODS_DATA();
}
public formatDate (val ) {
if (val !== 'Select All' ) {
return new Intl .DateTimeFormat('en-US' ).format(val);
} else {
return val;
}
}
public formatCurrency (val: string ) {
return parseInt (val, 10 ).toFixed(2 );
}
}
ts コピー <div class ="grid__wrapper" >
<igx-tree-grid [igxPreventDocumentScroll ]="true" #treegrid1 [data ]="data" [autoGenerate ]="false" [moving ]="true" height ="850px" width ="100%" [allowFiltering ]="true"
primaryKey ="ID" foreignKey ="ParentID" filterMode ="excelStyleFilter" >
<igx-column field ="ID" header ="Product ID" [dataType ]="'string'" [sortable ]="true" >
</igx-column >
<igx-column field ="Name" header ="Product Name" [dataType ]="'string'" [sortable ]="true" >
</igx-column >
<igx-column field ="UnitPrice" header ="Unit Price" dataType ="number" [sortable ]="true" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<span *ngIf ="cell.row.data.UnitPrice !== 0" > ${{val}}</span >
</ng-template >
</igx-column >
<igx-column field ="AddedDate" header ="Added Date" [dataType ]="'date'" [formatter ]="formatDate" [sortable ]="true" >
</igx-column >
<igx-column field ="Discontinued" header ="Discontinued" [dataType ]="'boolean'" [sortable ]="true" >
<ng-template igxCell let-cell ="cell" let-val >
<span *ngIf ="cell.row.data.UnitPrice === 0" > -</span >
<img *ngIf ="cell.row.data.UnitPrice !== 0 && val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/active.png" title ="Continued" alt ="Continued" />
<img *ngIf ="cell.row.data.UnitPrice !== 0 && !val" src ="https://www.infragistics.com/angular-demos-lob/assets/images/grid/expired.png" title ="Discontinued" alt ="Discontinued" />
</ng-template >
</igx-column >
</igx-tree-grid >
</div >
html コピー @use '../../variables' as *;
$yellow : #ffcd0f ;
$black : #292826 ;
$custom-grid : grid-theme(
$filtering-row-background : $yellow
);
$custom-flat-button : button-theme(
$background : $yellow ,
$foreground : $black ,
$hover-background : $black ,
$hover-foreground : $yellow
);
$custom-raised-button : button-theme(
$background : $black ,
$foreground : $yellow ,
$hover-background : $black ,
$hover-foreground : $yellow
);
$custom-button-group : button-group-theme(
$item-background : $yellow ,
$item-text-color : $black ,
$item-hover-background : $black ,
$item-hover-text-color : $yellow
);
$custom-input-group : input-group-theme(
$box-background : $yellow ,
$idle-text-color : $black ,
$focused-text-color : $black ,
$filled-text-color : $black
);
$custom-list : list-theme(
$background : $yellow
);
$custom-checkbox : checkbox-theme(
$empty-color : $black ,
$fill-color : $black ,
$tick-color : $yellow ,
$label-color : $black
);
$custom-drop-down : drop-down-theme(
$background-color : $yellow ,
$selected-item-background : lighten($black , 10% ),
$selected-focus-item-background : lighten($black , 15% ),
$item-text-color : $black ,
$hover-item-background : $black ,
$hover-item-text-color : $yellow
);
:host {
::ng-deep {
@include css-vars($custom-grid );
@include css-vars($custom-drop-down );
@include css-vars($custom-input-group );
@include css-vars($custom-checkbox );
@include css-vars($custom-list );
@include css-vars($custom-flat-button );
@include css-vars($custom-button-group );
.igx-excel-filter__apply {
@include css-vars($custom-raised-button );
}
}
}
.grid__wrapper {
margin : 16px ;
}
scss コピー
このサンプルは、Change Theme
(テーマの変更) から選択したグローバル テーマに影響を受けません。
API リファレンス
その他のリソース
コミュニティに参加して新しいアイデアをご提案ください。