Blazor Hierarchical Grid Summaries

    Blazor Hierarchical Grid의 Ignite UI for Blazor는 그룹 푸터로 열 단위로 작동합니다. Blazor HierarchicalGrid 요약은 사용자가 열 내 데이터 유형에 따라 또는 IgbHierarchicalGrid에서 사용자 정의 템플릿을 구현하여 사전 정의된 기본 요약 항목 세트가 있는 별도의 컨테이너에서 열 정보를 볼 수 있도록 하는 강력한 기능입니다.

    Blazor 계층적 그리드 요약 개요 예제

    EXAMPLE
    MODULES
    DATA
    RAZOR
    CSS

    이 샘플이 마음에 드시나요? Ignite UI for Blazor에 액세스하고 몇 분 만에 나만의 앱을 빌드하기 시작하세요. 무료로 다운로드하세요.

    열 요약은 모든 열 값의 함수입니다. 필터링이 적용되지 않는 한 열 요약은 필터링된 결과 값의 함수입니다.

    IgbHierarchicalGrid 요약은 Ignite UI for Blazor에서 열 단위로 활성화할 수도 있습니다. 즉, 필요한 열에 대해서만 활성화할 수 있습니다. IgbHierarchicalGrid 요약은 열의 데이터 유형에 따라 미리 정의된 기본 요약 세트를 제공하므로 시간을 절약할 수 있습니다.

    stringboolean ​ ​DataType의 경우 다음 함수를 사용할 수 있습니다.

    • 세다

    number, currencypercent 데이터 유형의 경우 다음 함수를 사용할 수 있습니다.

    • 세다
    • 최소
    • 맥스
    • 평균
    • 합집합

    date 데이터 유형의 경우 다음 기능을 사용할 수 있습니다.

    • 세다
    • 가장 빠른
    • 최신

    사용 가능한 모든 열 데이터 유형은 공식 열 유형 항목에서 찾을 수 있습니다.

    IgbHierarchicalGrid 요약은 설정을 통해 열별로 사용할 수 있습니다. HasSummary 속성을 . 또한 각 열에 대한 요약은 열 데이터 형식에 따라 확인된다는 점을 명심해야 합니다. 안에 IgbHierarchicalGrid 기본 열 데이터 형식은 다음과 같습니다. string, 그래서 당신이 원한다면 number 또는 date 특정 요약을 지정해야 합니다. DataType 속성을 number 또는 date. 요약 값은 그리드에 따라 지역화되어 표시됩니다 Locale 및 열 PipeArgs.

    <IgbHierarchicalGrid AutoGenerate="false" Data="SingersData" Name="hierarchicalGrid" @ref="hierarchicalGrid" Id="hierarchicalGrid" PrimaryKey="ID">
            <IgbColumn Field="Artist" HasSummary="true"></IgbColumn>
            <IgbColumn Field="Photo" DataType="GridColumnDataType.Image"></IgbColumn>
            <IgbColumn Field="Debut" HasSummary="true"></IgbColumn>
            <IgbColumn Field="GrammyNominations" DataType="GridColumnDataType.Number" HasSummary="true"></IgbColumn>
            <IgbColumn Field="GrammyAwards" DataType="GridColumnDataType.Number" HasSummary="true"></IgbColumn>
            <IgbRowIsland ChildDataKey="Albums" AutoGenerate="false">
                <IgbColumn Field="Album" DataType="GridColumnDataType.String"></IgbColumn>
                <IgbColumn Field="LaunchDate" DataType="GridColumnDataType.Date"></IgbColumn>
                <IgbColumn Field="BillboardReview" DataType="GridColumnDataType.Number" HasSummary="true"></IgbColumn>
                <IgbColumn Field="USBillboard200" DataType="GridColumnDataType.Number" HasSummary="true"></IgbColumn>
            </IgbRowIsland>
    </IgbHierarchicalGrid>
    razor

    특정 열 또는 열 목록에 대한 요약을 활성화/비활성화하는 다른 방법은 public method EnableSummaries /of를 DisableSummaries​ ​IgbHierarchicalGrid 사용하는 것입니다.

    <IgbHierarchicalGrid AutoGenerate="false" Data="SingersData" Name="hierarchicalGrid" @ref="hierarchicalGrid" Id="hierarchicalGrid" PrimaryKey="ID">
        <IgbColumn Field="Artist" HasSummary="true"></IgbColumn>
        <IgbColumn Field="Photo" DataType="GridColumnDataType.Image"></IgbColumn>
        <IgbColumn Field="Debut" HasSummary="true"></IgbColumn>
        <IgbColumn Field="GrammyNominations" DataType="GridColumnDataType.Number" HasSummary="true"></IgbColumn>
        <IgbColumn Field="GrammyAwards" DataType="GridColumnDataType.Number" HasSummary="true"></IgbColumn>
    </IgbHierarchicalGrid>
    
    @code {
        public async void DisableSummaries()
        {
            object[] disabledSummaries = { "GrammyNominations" };
            await this.hierarchicalGrid.DisableSummariesAsync(disabledSummaries);
        }
    }
    razor

    사용자 정의 계층형 그리드 요약

    이러한 기능이 요구 사항을 충족하지 못하는 경우 특정 열에 대한 사용자 정의 요약을 제공할 수 있습니다.

    
    //In JavaScript
    class WebGridDiscontinuedSummary {
        operate(data, allData, fieldName) {
            const discontinuedData = allData.filter((rec) => rec['Discontinued']).map(r => r[fieldName]);
            const result = [];
            result.push({
                key: 'products',
                label: 'Products',
                summaryResult: data.length
            });
            result.push({
                key: 'total',
                label: 'Total Items',
                summaryResult: data.length ? data.reduce((a, b) => +a + +b) : 0
            });
            result.push({
                key: 'discontinued',
                label: 'Discontinued Products',
                summaryResult: allData.map(r => r['Discontinued']).filter((rec) => rec).length
            });
            result.push({
                key: 'totalDiscontinued',
                label: 'Total Discontinued Items',
                summaryResult: discontinuedData.length ? discontinuedData.reduce((a, b) => +a + +b) : 0
            });
            return result;
        }
    }
    razor

    예제에서 볼 수 있듯이 기본 클래스는 Operate 메서드를 노출하므로 모든 기본 요약을 가져오고 결과를 수정하거나 완전히 새로운 요약 결과를 계산하도록 선택할 수 있습니다.

    이 메소드는 IgbSummaryResult 목록을 반환합니다.

    요약을 계산하기 위해 선택적 매개변수를 사용합니다. 아래의 모든 데이터 섹션에 액세스하는 사용자 정의 요약을 참조하세요.

    요약 행 높이를 제대로 계산하려면 데이터가 비어 있는 경우에도 계층적 Grid에서 항상 적절한 길이의 IgbSummaryResult 배열을 반환하는 Operate 메서드가 필요합니다.

    <IgbHierarchicalGrid 
            AutoGenerate="true"
            Name="hierarchicalGrid"
            @ref="hierarchicalGrid"
            Data="SingersData"
            PrimaryKey="ID"
            ColumnInitScript="WebHierarchicalGridCustomSummary">
    </IgbHierarchicalGrid>
    
    // In Javascript
    igRegisterScript("WebHierarchicalGridCustomSummary", (event) => {
        if (event.detail.field === "GrammyAwards") {
            event.detail.summaries = WebHierarchicalGridSummary;
        }
    }, false);
    razor

    모든 데이터에 액세스하는 사용자 정의 요약

    이제 사용자 지정 열 요약 내의 모든 계층적 그리드 데이터에 액세스할 수 있습니다. SummaryOperand 메서드에는 두 개의 추가 선택적 매개 변수가 도입되었습니다 Operate. 아래 코드 스니펫에서 볼 수 있듯이 operation 메서드에는 다음 세 가지 매개 변수가 있습니다.

    • columnData - 현재 열의 값만 포함하는 배열을 제공합니다.
    • allGridData - 전체 그리드 데이터 소스를 제공합니다.
    • fieldName - 현재 열 필드
    class WebGridDiscontinuedSummary {
        operate(data, allData, fieldName) {
            const discontinuedData = allData.filter((rec) => rec['Discontinued']).map(r => r[fieldName]);
            result.push({
                key: 'totalDiscontinued',
                label: 'Total Discontinued Items',
                summaryResult: discontinuedData.length ? discontinuedData.reduce((a, b) => +a + +b) : 0
            });
            return result;
        }
    }
    razor

    EXAMPLE
    MODULES
    DATA
    RAZOR
    CSS

    요약 템플릿

    Summary 열 요약 결과를 컨텍스트로 제공하는 열 요약을 대상으로 합니다.

    <IgbColumn HasSummary="true" SummaryTemplateScript="SummaryTemplate">
    </IgbColumn>
    
    igRegisterScript("SummaryTemplate", (ctx) => {
        var html = window.igTemplating.html;
        return html`<div>
        <span> ${ctx.implicit[0].label} - ${ctx.implicit[0].summaryResult} </span>
    </div>`
    }, false);
    razor

    기본 요약이 정의되면 요약 영역의 높이는 요약 수가 가장 많은 열과--ig-size 그리드에 따라 설계에 따라 계산됩니다. SummaryRowHeight input 속성을 사용하여 기본값을 재정의합니다. 인수로 숫자 값이 필요하며 거짓 값을 설정하면 그리드 바닥글의 기본 크기 조정 동작이 트리거됩니다.

    EXAMPLE
    MODULES
    DATA
    RAZOR
    JS
    CSS

    장애인 요약

    DisabledSummaries 속성은 Blazor Hierarchical Grid 요약 기능에 대한 열별 정확한 제어를 제공합니다. 이 속성을 사용하면 사용자가 HierarchicalGrid의 각 열에 대해 표시되는 요약을 사용자 지정하여 가장 관련성이 높고 의미 있는 데이터만 표시되도록 할 수 있습니다. 예를 들어, 배열에서 요약 키를 지정하는 것과 같이 ['count', 'min', 'max'] 특정 요약 유형을 제외할 수 있습니다.

    또한 이 속성은 코드를 통해 런타임에 동적으로 수정할 수 있으므로 HierarchicalGrid의 요약을 변경되는 응용 프로그램 상태 또는 사용자 작업에 맞게 조정할 수 있는 유연성을 제공합니다.

    다음 예제에서는 속성을 사용하여 DisabledSummaries 여러 열에 대한 요약을 관리하고 Blazor Hierarchical Grid에서 특정 기본 및 사용자 지정 요약 유형을 제외하는 방법을 보여 줍니다.

    <!-- Disable default summaries -->
    <IgbColumn 
        Field="UnitPrice" 
        Header="Unit Price" 
        DataType="GridColumnDataType.Number"
        HasSummary="true" 
        DisabledSummaries="['count', 'sum', 'average']" />
    
    <!-- Disable custom summaries -->
    <IgbColumn 
        Field="UnitsInStock" 
        Header="Units In Stock" 
        DataType="GridColumnDataType.Number"
        HasSummary="true" 
        Summaries="discontinuedSummary" 
        DisabledSummaries="['discontinued', 'totalDiscontinued']" />
    razor

    UnitPrice 경우, 기본 요약은 , sumaverage 같고 count 비활성화되어 있으며 다른 요약은 같고 min​ ​max 활성 상태로 유지됩니다.

    의 경우 UnitsInStock, 및 totalDiscontinued와 같은 discontinued 사용자 지정 요약은 DisabledSummaries 속성을 사용하여 제외됩니다.

    런타임에는 속성을 사용하여 요약을 동적으로 비활성화할 수도 있습니다 DisabledSummaries. 예를 들어 프로그래밍 방식으로 특정 열의 속성을 설정하거나 업데이트하여 사용자 작업 또는 응용 프로그램 상태 변경에 따라 표시되는 요약을 조정할 수 있습니다.

    EXAMPLE
    MODULES
    DATA
    RAZOR
    JS
    CSS

    키보드 탐색

    요약 행은 다음 키보드 상호 작용을 통해 탐색할 수 있습니다.

    • UP- 한 셀 위로 이동합니다.
    • DOWN- 한 셀 아래로 이동합니다.
    • 왼쪽- 한 셀 왼쪽으로 이동합니다.
    • RIGHT- 한 셀 오른쪽으로 이동합니다.
    • CTRL + LEFT 또는 HOME- 가장 왼쪽 셀로 이동합니다.
    • CTRL + RIGHT 또는 END- 가장 오른쪽 셀로 이동합니다.

    스타일링

    사전 정의된 테마 외에도 사용 가능한 CSS 속성 중 일부를 설정하여 그리드를 추가로 사용자 정의할 수 있습니다. 일부 색상을 변경하려면 먼저 그리드에 대한 클래스를 설정해야 합니다.

    <IgbHierarchicalGrid class="hierarchicalGrid"></IgbHierarchicalGrid>
    razor

    그런 다음 해당 클래스에 대한 관련 CSS 속성을 설정합니다.

    .hierarchicalGrid {
        --ig-grid-summary-background-color:#e0f3ff;
        --ig-grid-summary-focus-background-color: rgba( #94d1f7, .3 );
        --ig-grid-summary-label-color: rgb(228, 27, 117);
        --ig-grid-summary-result-color: black;
    }
    css

    데모

    EXAMPLE
    MODULES
    DATA
    RAZOR
    CSS

    API 참조

    추가 리소스

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