Blazor 트리 그리드 조건부 스타일링

    Blazor Tree Grid의 Ignite UI for Blazor Conditional Styling 기능은 행 또는 셀 수준에서 사용자 지정 스타일을 허용합니다. IgbTreeGrid Conditional Styling 기능은 특정 기준을 충족하는 데이터를 시각적으로 강조하거나 강조하는 데 사용되므로 사용자가 그리드 내에서 중요한 정보나 추세를 더 쉽게 식별할 수 있습니다.

    트리 그리드 조건부 행 스타일 지정

    Ignite UI for Blazor의 IgbTreeGrid 구성 요소는 사용자 지정 규칙에 따라 행의 조건부 스타일을 지정하는 두 가지 방법을 제공합니다.

    이 주제에서는 두 가지 모두에 대해 더 자세히 다룰 것입니다.

    행 클래스 사용

    입력을 설정하고 사용자 지정 규칙을 정의하여 조건부로 행의 IgbTreeGrid​ ​RowClasses 스타일을 지정할 수 있습니다.

    <IgbTreeGrid AutoGenerate="true" Id="grid" Data="CustomersData" Name="grid" RowClassesScript="RowClassesHandler" @ref="grid">
    </IgbTreeGrid>
    razor

    RowClasses 입력은 키-값 쌍을 포함하는 객체 리터럴을 허용합니다. 여기서 키는 CSS 클래스의 이름이고 값은 부울 또는 부울 값을 반환하는 콜백 함수입니다.

    igRegisterScript("RowClassesHandler", () => {
        return {
            activeRow: (row) => row.index === 0
        };
    }, true);
    razor
    .activeRow {
        border: 2px solid #fc81b8;
        border-left: 3px solid #e41c77;
    }
    css

    데모

    EXAMPLE
    MODULES
    DATA
    RAZOR
    JS
    CSS

    행 스타일 사용

    이 컨트롤은 IgbTreeGrid 데이터 행의 RowStyles 조건부 스타일을 허용하는 속성을 노출합니다. 이와 RowClasses 유사하게, 키는 스타일 속성이고 값은 평가를 위한 표현식인 개체 리터럴을 허용합니다. 또한 조건 없이 일반 스타일을 적용할 수 있습니다.

    The callback signature for both RowStyles and RowClasses is:

    (row) => boolean
    razor

    스타일을 정의해 보겠습니다.

    igRegisterScript("WebTreeGridRowStylesHandler", () => {
        return {
            'background': (row) => row.data['Title'] === 'CEO' ? '#6c757d' :
                row.data['Title'].includes('President') ? '#adb5bd' :
                row.data['Title'].includes('Director') ? '#ced4da' :
                row.data['Title'].includes('Manager') ? '#dee2e6' :
                row.data['Title'].includes('Lead') ? '#e9ecef' :
                row.data['Title'].includes('Senior') ? '#f8f9fa' : null,
            'border-left': (row) => row.data['Title'] === 'CEO' || row.data['Title'].includes('President') ? '2px solid' : null,
            'border-color': (row) => row.data['Title'] === 'CEO' ? '#495057' : null,
            'color': (row) => row.data['Title'] === 'CEO' ? '#fff' : null
        };
    }, true);
    razor
    <IgbTreeGrid AutoGenerate="true" PrimaryKey="ID" ForeignKey="ParentID" Data="Data" RowStylesScript="WebTreeGridRowStylesHandler">
    </IgbTreeGrid>
    razor

    데모

    EXAMPLE
    MODULES
    DATA
    RAZOR
    JS
    CSS

    트리 그리드 조건부 셀 스타일 지정

    개요

    Ignite UI for Blazor의 IgbTreeGrid 구성 요소는 사용자 지정 규칙에 따라 셀의 조건부 스타일을 지정하는 두 가지 방법을 제공합니다.

    • IgbColumn 입력 CellClasses 키-값 쌍을 포함하는 객체 리터럴로 설정합니다. 키는 CSS 클래스의 이름이고 값은 부울 또는 부울 값을 반환하는 콜백 함수입니다. 그 결과 셀의 편리한 소재 스타일링이 이루어졌습니다.

    셀 클래스 사용

    를 설정하여 조건부로 셀의 IgbTreeGrid 스타일을 지정할 수 있습니다. IgbColumn ​ ​CellClasses 사용자 지정 규칙을 입력하고 정의합니다.

    <IgbColumn Field="UnitPrice" Header="Unit Price" DataType="GridColumnDataType.Currency" CellClassesScript="UnitPriceCellClassesHandler">
    </IgbColumn>
    razor

    CellClasses 입력은 키-값 쌍을 포함하는 객체 리터럴을 허용합니다. 여기서 키는 CSS 클래스의 이름이고 값은 부울 또는 부울 값을 반환하는 콜백 함수입니다.

    igRegisterScript("UnitPriceCellClassesHandler", () => {
        return {
            downPrice: (rowData, columnKey) => rowData[columnKey] <= 5,
            upPrice: (rowData, columnKey) => rowData[columnKey] > 5,
        };
    }, true);
    razor
    .upPrice {
        color: red !important;
    }
    
    .downPrice {
        color: green !important;
    }
    css

    데모

    EXAMPLE
    MODULES
    DATA
    RAZOR
    JS
    CSS

    • 키가 스타일 속성이고 값이 평가용 표현식인 개체 리터럴을 허용하는 IgbColumn 입력 CellStyles 사용합니다.

    이제 cellStylescellClasses에 대한 콜백 서명이 다음으로 변경되었습니다.

    (rowData, columnKey, cellValue, rowIndex) => boolean
    razor

    셀 스타일 사용

    열은 열 셀의 조건부 스타일 지정을 허용하는 CellStyles 속성을 노출합니다. CellClasses와 유사하게 키가 스타일 속성이고 값이 평가용 표현식인 객체 리터럴을 허용합니다. 또한 아무런 조건 없이 일반 스타일링을 쉽게 적용할 수 있습니다.

    스타일을 정의해 보겠습니다.

    igRegisterScript("WebTreeGridCellStylesHandler", () => {
        return {
            background: (rowData, columnKey, cellValue, rowIndex) => rowIndex % 2 === 0 ? "#EFF4FD" : null,
            color: (rowData, columnKey, cellValue, rowIndex) => {
                if (columnKey === "UnitPrice") {
                    if (cellValue > 10) return "#dc3545";
                    if (cellValue < 5) return "#28a745";
                    if (cellValue >= 5 && cellValue <= 10) return "#17a2b8";
                }
            }
        };
    }, true);
    razor
    <IgbColumn CellStylesScript="WebTreeGridCellStylesHandler">
    </IgbColumn>
    razor

    데모

    EXAMPLE
    MODULES
    DATA
    RAZOR
    JS
    CSS

    알려진 문제 및 제한 사항

    • 동일한 조건(다른 열의)에 바인딩된 셀이 있고 하나의 셀이 업데이트되는 경우 조건이 충족되면 다른 셀은 새 값을 기반으로 업데이트되지 않습니다.

    API 참조

    추가 리소스

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