Angular 그리드 열 선택
열 선택 기능을 사용하면 한 번의 클릭으로 전체 열을 쉽게 선택할 수 있습니다. 헤더 셀과 아래의 모든 항목에 초점을 맞춰 특정 열의 중요성을 강조합니다. 이 기능에는 선택 상태 조작, 선택한 분수에서 데이터 추출, 데이터 분석 작업 및 시각화를 허용하는 풍부한 API
가 함께 제공됩니다.
Angular 열 선택 예제
아래 샘플은 세 가지 유형의 Grid 열 선택 동작을 보여줍니다. 사용 가능한 각 선택 모드를 활성화하려면 아래 열 선택 드롭다운을 사용하세요.
* 연락처 제목 , 도시 및 주소 열은 열 선택이 비활성화되어 있습니다.
import { AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core' ;
import { GridSelectionMode, IgxGridComponent, IgxGridToolbarComponent, IgxSelectComponent, IgxLabelDirective, IgxSelectItemComponent, IgxColumnComponent } from 'igniteui-angular' ;
import { DATA } from '../../data/customers' ;
import { FormsModule } from '@angular/forms' ;
@Component ({
selector : 'app-grid-column-selection' ,
templateUrl : './column-selection-sample.component.html' ,
styleUrls : ['./column-selection-sample.component.scss' ],
imports : [IgxGridComponent, IgxGridToolbarComponent, IgxSelectComponent, FormsModule, IgxLabelDirective, IgxSelectItemComponent, IgxColumnComponent]
})
export class GridColumnSelectionComponent implements OnInit , AfterViewInit {
@ViewChild (IgxGridComponent)
public grid: IgxGridComponent;
public data: any [];
public columnSelectionType: GridSelectionMode = 'single' ;
constructor (private cdr: ChangeDetectorRef ) {}
public ngOnInit ( ) {
this .data = DATA;
}
public ngAfterViewInit ( ) {
this .grid.getColumnByName('CompanyName' ).selected = true ;
this .cdr.detectChanges();
}
}
ts コピー <div class ="grid-wrapper" >
<igx-grid #grid [columnSelection ]="columnSelectionType" [data ]="data" height ="530px" width ="100%" >
<igx-grid-toolbar >
<igx-select [(ngModel )]="columnSelectionType" >
<label igxLabel > Column Selection</label >
<igx-select-item value ="none" > None</igx-select-item >
<igx-select-item value ="single" > Single</igx-select-item >
<igx-select-item value ="multiple" > Mulitple</igx-select-item >
</igx-select >
</igx-grid-toolbar >
<igx-column field ="ID" > </igx-column >
<igx-column field ="CompanyName" header ="Company Name" > </igx-column >
<igx-column field ="ContactTitle" [selectable ]="false" header ="Contact Title" > </igx-column >
<igx-column field ="City" [selectable ]="false" > </igx-column >
<igx-column field ="Country" > </igx-column >
<igx-column field ="PostalCode" header ="Postal Code" > </igx-column >
<igx-column field ="Address" [selectable ]="false" > </igx-column >
</igx-grid >
</div >
html コピー .grid-wrapper {
padding : 16px ;
}
igx-select {
--ig-size: var(--ig-size-small);
}
scss コピー
이 샘플이 마음에 드시나요? 전체 Ignite UI for Angular 툴킷에 액세스하고 몇 분 안에 나만의 앱을 구축해 보세요. 무료로 다운로드하세요.
기본 사용법
열 선택 기능은 다음을 통해 활성화할 수 있습니다. columnSelection
입력, 소요되는 그리드선택모드 가치.
상호 작용
기본 선택 모드는 none
입니다. single
또는 multiple
으로 설정하면 제시된 모든 열을 selectable
수 있습니다. 즉, 열을 선택하려면 하나를 클릭하면 selected
로 표시됩니다. 열을 선택할 수 없는 경우 마우스를 가져가는 동안 헤더에 선택 스타일이 적용되지 않습니다.
* 국가 정보 열 그룹에서는 도시 및 우편번호 열만 선택할 수 있습니다.
import { AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core' ;
import { IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent } from 'igniteui-angular' ;
import { DATA } from '../../data/customers' ;
@Component ({
selector : 'app-gird-column-group-selection' ,
templateUrl : './column-group-selection-sample.component.html' ,
styleUrls : ['./column-group-selection-sample.component.scss' ],
imports : [IgxGridComponent, IgxColumnGroupComponent, IgxColumnComponent]
})
export class GridColumnGroupSelectionComponent implements OnInit , AfterViewInit {
@ViewChild (IgxGridComponent)
public grid: IgxGridComponent;
public data: any [];
constructor (private cdr: ChangeDetectorRef ) {}
public ngOnInit ( ) {
this .data = DATA;
}
public ngAfterViewInit ( ) {
this .grid.selectColumns(['City' , 'PostalCode' ]);
this .cdr.detectChanges();
}
}
ts コピー <div class ="grid-wrapper" >
<igx-grid #grid [data ]="data" height ="530px" width ="100%" columnSelection ="multiple" >
<igx-column-group header ="General Information" >
<igx-column field ="CompanyName" > </igx-column >
<igx-column-group header ="Personal Details" >
<igx-column field ="ContactName" [hidden ]="true" > </igx-column >
<igx-column field ="ContactTitle" [selectable ]="false" > </igx-column >
</igx-column-group >
</igx-column-group >
<igx-column field ="ID" > </igx-column >
<igx-column-group header ="Country Information" >
<igx-column-group header ="Region Information" >
<igx-column field ="Country" [selectable ]="false" > </igx-column >
<igx-column field ="City" > </igx-column >
<igx-column field ="PostalCode" > </igx-column >
</igx-column-group >
<igx-column-group header ="City Information" >
<igx-column field ="Fax" [selectable ]="false" > </igx-column >
<igx-column field ="Address" [selectable ]="false" > </igx-column >
</igx-column-group >
</igx-column-group >
</igx-grid >
</div >
html コピー .grid-wrapper {
padding : 16px
}
scss コピー
키보드 조합
열 선택 기능의 키보드 탐색에는 두 가지 시나리오가 있습니다.
다중 열 선택 - 보유 Ctrl 키 + 딸깍 하는 소리 매 선택 가능 헤더 셀.
범위 열 선택 -Shift 키를 누른 채 클릭하면 사이에서 선택 가능한 모든 열이 선택됩니다.
API 조작
그만큼 API 몇 가지 추가 기능을 제공합니다. 눈에 보이지 않는 열은 모든 숨겨진 열은 다음과 같이 표시될 수 있습니다. selected
해당 설정을 통해 세터 .
API 조작에 관한 자세한 내용은 API References
섹션에서 확인할 수 있습니다.
스타일링
스타일링 옵션을 살펴보기 전에 핵심 모듈과 모든 구성 요소 믹스인을 가져와야 합니다.
@use "igniteui-angular/theming" as *;
scss
이제 선택 및 호버 스타일을 변경해 보겠습니다. 가장 간단한 접근 방식에 따라 맞춤 테마를 정의해 보겠습니다.
$custom-grid-theme : grid-theme(
$row-selected-background : #011627 ,
$row-selected-text-color : #ecaa53 ,
$row-selected-hover-background : #011627 ,
$header-selected-text-color : #ecaa53 ,
$header-selected-background : #011627
);
scss
몇 grid-theme
가지 매개 변수를 허용하지만 선택한 모든 열의 모양을 변경하는 5 개의 매개 변수가 있습니다.
$row-selected-ground - 선택한 분수의 배경을 설정합니다.
$row-selected-text-color - 선택한 분수의 텍스트 색상을 설정합니다.
$row-selected-hover-ground - 호버링된 셀 또는 셀 묶음의 색상을 설정합니다.
$header-selected-text-color - 선택한 열 헤더의 텍스트 색상을 설정합니다.
$header-selected-ground - 선택한 열 헤더의 배경색을 설정합니다.
CSS 변수 사용
마지막 단계는 사용자 정의 igx-grid
테마를 포함하는 것입니다.
@include css-vars($custom-grid-theme )
scss
데모
import { AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core' ;
import { IgxGridComponent, IgxColumnComponent } from 'igniteui-angular' ;
import { DATA } from '../../data/customers' ;
@Component ({
selector : 'app-gird-column-selection-styles' ,
templateUrl : './column-selection-styles.component.html' ,
styleUrls : ['./column-selection-styles.component.scss' ],
imports : [IgxGridComponent, IgxColumnComponent]
})
export class GridColumnSelectionStylesComponent implements OnInit , AfterViewInit {
@ViewChild (IgxGridComponent)
public grid: IgxGridComponent;
public data: any [];
constructor (private cdr: ChangeDetectorRef ) {}
public ngOnInit ( ) {
this .data = DATA;
}
public ngAfterViewInit ( ) {
this .grid.selectColumns(['CompanyName' , 'PostalCode' ]);
this .cdr.detectChanges();
}
}
ts コピー <div class ="grid-wrapper" >
<igx-grid #grid [data ]="data" height ="530px" width ="100%" columnSelection ="multiple" >
<igx-column field ="CompanyName" > </igx-column >
<igx-column field ="ContactName" > </igx-column >
<igx-column field ="ContactTitle" [selectable ]="false" > </igx-column >
<igx-column field ="ID" > </igx-column >
<igx-column field ="Country" [selectable ]="false" > </igx-column >
<igx-column field ="PostalCode" > </igx-column >
<igx-column field ="City" [selectable ]="false" > </igx-column >
<igx-column field ="Address" [selectable ]="false" > </igx-column >
</igx-grid >
</div >
html コピー @use "layout.scss" ;
@use "igniteui-angular/theming" as *;
$custom-grid-theme : grid-theme(
$row-selected-background : #011627 ,
$row-selected-text-color : #ecaa53 ,
$row-selected-hover-background : #011627 ,
$header-selected-text-color : #ecaa53 ,
$header-selected-background : #011627
);
@include css-vars($custom-grid-theme );
scss コピー
샘플은 Change Theme
에서 선택한 전역 테마의 영향을 받지 않습니다.
API 참조
열 선택 UI에는 아래에 나열된 몇 가지 API가 더 있습니다.
IgxGridComponent
properties:
IgxColumnComponent
properties:
IgxColumnGrpupComponent
properties:
IgxGridComponent
events:
추가 리소스
우리 커뮤니티는 활동적이며 항상 새로운 아이디어를 환영합니다.