Angular Grid 다중 열 헤더 개요

    IgxGrid 공통 다중 헤더 아래에 열을 배치하여 그룹화할 수 있는 multi-column headers 지원합니다. 각 다중 열 헤더 그룹은 Material UI 그리드 내의 다른 그룹 또는 열 간의 조합을 나타낼 수 있습니다.

    Angular Grid 다중 열 헤더 개요 예

    EXAMPLE
    TS
    HTML
    SCSS

    이 샘플이 마음에 드시나요? 전체 Ignite UI for Angular 툴킷에 액세스하고 몇 분 안에 나만의 앱을 구축해 보세요. 무료로 다운로드하세요.

    Multi-column header 선언은 header 제목이 전달된 igx-column-group 구성 요소에 열 집합을 래핑하여 수행할 수 있습니다.

    <igx-grid [data]="data" [allowFiltering]="true">
        <igx-column-group header="Contact Information">
            <igx-column sortable="true" resizable="true" field="Phone"></igx-column>
            <igx-column sortable="true" resizable="true" field="Fax"></igx-column>
            <igx-column sortable="true" resizable="true" field="PostalCode"></igx-column>
        </igx-column-group>
    </igx-grid>
    html

    n-th 수준의 중첩된 헤더를 얻으려면 위의 선언을 따라야 합니다. 따라서 igx-column-group 중첩하면 원하는 결과를 얻을 수 있습니다.

    <igx-grid [data]="data" [allowFiltering]="true" [moving]="true">
        <igx-column-group header="General Information">
            <igx-column sortable="true" resizable="true" field="CompanyName"></igx-column>
            <igx-column-group header="Person Details">
                <igx-column [pinned]="false" sortable="true" resizable="true" field="ContactName"></igx-column>
                <igx-column sortable="true" resizable="true" field="ContactTitle"></igx-column>
            </igx-column-group>
        </igx-column-group>
    </igx-grid>
    html

    모든 igx-column-group​ ​moving, pinninghiding 지원합니다.

    일련의 열 및 열 그룹이 있는 경우 고정은 최상위 열 상위 항목에 대해서만 작동합니다. 보다 구체적으로 중첩된 column groups 또는 columns 고정하는 것은 허용되지 않습니다.
    다중 열 헤더와 함께 고정을 사용하면 전체 그룹이 고정됩니다.
    columns​ ​column groups 간 이동은 계층 구조에서 동일한 수준에 있고 둘 다 동일한 group에 있는 경우에만 허용됩니다.
    columns/column-groups 현재 group으로 래핑되지 않은 경우 즉, 최상위 ​ ​columns 의미하며 표시되는 전체 열 간에 이동이 허용됩니다.

    <igx-grid [data]="data" [allowFiltering]="true" [moving]="true">
        <igx-column-group [pinned]="true" header="General Information">
            <igx-column sortable="true" resizable="true" field="CompanyName"></igx-column>
        </igx-column-group>
        <igx-column sortable="true" resizable="true" field="Phone"></igx-column>
        <igx-column sortable="true" resizable="true" field="Fax"></igx-column>
        <igx-column sortable="true" resizable="true" field="PostalCode"></igx-column>
    </igx-grid>
    html

    다중 열 헤더 템플릿

    그리드의 각 열 그룹은 별도로 템플릿화할 수 있습니다. 열 그룹에는 igxHeader 지시문으로 장식된 ng-template 태그가 필요합니다. ng-template 열 그룹 개체와 함께 컨텍스트로 제공됩니다.

    ...
    <igx-column-group header="General Information">
        <ng-template igxHeader let-columnGroup>
            {{ columnGroup.header | uppercase }}
        </ng-template>
        ...
    </igx-column-group>
    ...
    html

    여러 열 그룹에 대해 단일 템플릿을 재사용하려면 다음과 같이 열 그룹의 headerTemplate 속성을 설정할 수 있습니다.

    <ng-template #columnGroupHeaderTemplate let-columnGroup>
        {{ columnGroup.header | uppercase }}
    </ng-template>
    
    ...
    <igx-column-group header="General Information" [headerTemplate]="columnGroupHeaderTemplate">
        ...
    </igx-column-group>
    <igx-column-group header="Address Information" [headerTemplate]="columnGroupHeaderTemplate">
        ...
    </igx-column-group>
    ...
    html

    열 헤더가 다시 템플릿화되고 그리드 이동이 활성화된 경우 템플릿 요소에서 해당 열의 draggable 속성을 false로 설정해야 적용되는 모든 이벤트를 처리할 수 있습니다!

    <ng-template igxHeader>
        <igx-icon [attr.draggable]="false" (click)="onClick()"></igx-icon>
    </ng-template>
    html

    다음 샘플은 헤더 템플릿을 사용하여 축소 가능한 열 그룹을 구현하는 방법을 보여줍니다.

    EXAMPLE
    TS
    HTML
    SCSS

    스타일링

    정렬 동작 스타일 지정을 시작하려면 모든 테마 기능과 구성 요소 믹스인이 있는 index 파일을 가져와야 합니다.

    @use "igniteui-angular/theming" as *;
    
    // IMPORTANT: Prior to Ignite UI for Angular version 13 use:
    // @import '~igniteui-angular/lib/core/styles/themes/index';
    scss

    가장 간단한 접근 방식에 따라 우리는 grid-theme 그리고 받아들인다 $header-background, $header-text-color, $header-border-width, $header-border-style 그리고 $header-border-color 매개변수.

    $custom-theme: grid-theme(
      $header-background: #e0f3ff,
      $header-text-color: #e41c77,
      $header-border-width: 1px,
      $header-border-style: solid,
      $header-border-color: rgba(0, 0, 0, 0.08)
    );
    scss

    우리가 방금 한 것처럼 색상 값을 하드 코딩하는 대신, and color 함수를 사용하여 palette 색상 측면에서 더 큰 유연성을 얻을 수 있습니다. 사용 방법에 대한 자세한 지침은 항목을 참조하십시오 Palettes.

    마지막 단계는 구성요소 믹스인을 포함하는 것입니다.

    @include css-vars($custom-theme);
    scss

    데모

    EXAMPLE
    TS
    HTML
    SCSS

    샘플은 Change Theme에서 선택한 전역 테마의 영향을 받지 않습니다.

    API 참조

    App Builder | CTA 배너

    추가 리소스

    우리 커뮤니티는 활동적이며 항상 새로운 아이디어를 환영합니다.