Web Components 계층적 그리드 크기(Hierarchical Grid Size)

    Web Components Hierarchical Grid의 Ignite UI for Web Components Size 기능을 사용하면 사용자가 해당 데이터 내의 데이터 간격과 레이아웃을 제어할 수 있습니다 IgcHierarchicalGridComponent. 변경--ig-size 하면 많은 양의 콘텐츠와 상호 작용할 때 사용자 환경을 크게 개선할 수 있습니다. 세 가지 크기 옵션 중에서 선택할 수 있습니다.

    • --ig-size-large
    • --ig-size-medium
    • --ig-size-small

    Web Components Hierarchical Grid Size Example

    Usage

    위의 데모에서 볼 수 있듯이 IgcHierarchicalGridComponent 세 가지 크기 옵션을 제공합니다. 작다, 보통 그리고 . 아래 코드 스니펫은 설정 방법을 보여줍니다.--ig-size 인라인 또는 CSS 클래스의 일부 :

    .gridSize {
        --ig-size: var(--ig-size-medium);
    }
    
    <igc-hierarchical-grid id="grid" class="gridSize">
    </igc-hierarchical-grid>
    

    이제 각 옵션이 구성 요소에 어떻게 반영되는지 IgcHierarchicalGridComponent 자세히 살펴보겠습니다. 다른 크기 옵션 간에 전환하면 각 IgcHierarchicalGridComponent 요소의 높이와 해당 패딩이 변경됩니다. 또한 사용자 정의 열을 width 적용하려면 왼쪽과 오른쪽 패딩의 합보다 커야 한다는 사실을 고려하십시오.

    • - 이것이 기본값입니다. IgcHierarchicalGridComponent 가장 낮은 강도와 행 높이가 같은 크기 50px. 왼쪽 및 오른쪽 패딩은 다음과 같습니다. 24px; 최소 열 width 다음과 같음 80px;
    • 중간- 이것은 행 높이가 있는 40px 중간 강렬한 크기입니다. 왼쪽 및 오른쪽 패딩은 다음과 같습니다 16px. 최소 열 width은 다음과 같습니다 64px.
    • small- 강렬하고 32px 행 높이가 가장 높은 크기입니다. 왼쪽 및 오른쪽 패딩은 다음과 같습니다 12px. 최소 열 width은 다음과 같습니다 56px.

    [!Note] Please keep in mind that currently you can not override any of the sizes.

    이제 샘플을 계속 진행하면서 가--ig-size 어떻게 적용되는지 실제로 살펴보겠습니다. 먼저 각 크기 사이를 전환하는 데 도움이 되는 버튼을 추가해 보겠습니다.

    <div class="size-chooser">
        <igc-property-editor-panel
        description-type="WebHierarchicalGrid"
        is-horizontal="true"
        is-wrapping-enabled="true"
        name="PropertyEditor"
        id="propertyEditor">
            <igc-property-editor-property-description
            name="SizeEditor"
            id="SizeEditor"
            label="Grid Size:"
            value-type="EnumValue"
            drop-down-names="Small, Medium, Large"
            drop-down-values="Small, Medium, Large">
            </igc-property-editor-property-description>
        </igc-property-editor-panel>
    </div>
    

    이제 마크업을 추가할 수 있습니다.

    <igc-hierarchical-grid id="grid" height="600px" width="100%" allow-filtering="true">
        <igc-column field="CustomerID"></igc-column>
        <igc-column field="CompanyName"></igc-column>
        <igc-column field="ContactName"></igc-column>
        <igc-column field="ContactTitle"></igc-column>
        <igc-column field="Address"></igc-column>
        <igc-column field="City"></igc-column>
        <igc-column field="PostalCode"></igc-column>
        <igc-column field="Country"></igc-column>
        <igc-column field="Phone"></igc-column>
        <igc-column field="Fax"></igc-column>
    
        <igc-row-island key="Orders" auto-generate="false" >
                <igc-column field="OrderID"></igc-column>
                <igc-column field="EmployeeID"></igc-column>
                <igc-column field="OrderDate"></igc-column>
                <igc-column field="RequiredDate"></igc-column>
                <igc-column field="ShippedDate"></igc-column>
                <igc-column field="ShipVia"></igc-column>
                <igc-column field="Freight"></igc-column>
                <igc-column field="ShipName"></igc-column>
                <igc-column field="ShipAddress"></igc-column>
                <igc-column field="ShipCity"></igc-column>
                <igc-column field="ShipPostalCode"></igc-column>
                <igc-column field="ShipCountry"></igc-column>
    
            <igc-row-island key="OrderDetails" auto-generate="false">
                    <igc-column field="ProductID"></igc-column>
                    <igc-column field="UnitPrice"></igc-column>
                    <igc-column field="Quantity"></igc-column>
                    <igc-column field="Discount"></igc-column>
            </igc-row-island>
        </igc-row-island>
    
    </igc-hierarchical-grid>
    

    마지막으로 실제로 크기를 적용하는 데 필요한 논리를 제공하겠습니다.

    constructor() {
        var propertyEditor = this.propertyEditor = document.getElementById('PropertyEditor') as IgcPropertyEditorPanelComponent;
        var sizeEditor = this.sizeEditor = document.getElementById('SizeEditor') as IgcPropertyEditorPropertyDescriptionComponent;
        var grid = this.grid = document.getElementById('grid') as IgcHierarchicalGrid;
        propertyEditor.componentRenderer = this.renderer;
        propertyEditor.target = this.grid;
        this.webGridSetGridSize = this.webGridSetGridSize.bind(this);
        sizeEditor.changed = this.webGridSetGridSize;
        grid.data = this.data;
    }
    
    private _componentRenderer: ComponentRenderer = null;
    public get renderer(): ComponentRenderer {
        if (this._componentRenderer == null) {
            this._componentRenderer = new ComponentRenderer();
            var context = this._componentRenderer.context;
            PropertyEditorPanelDescriptionModule.register(context);
            WebGridDescriptionModule.register(context);
        }
        return this._componentRenderer;
    }
    
    public webGridSetGridSize(sender: any, args: IgcPropertyEditorPropertyDescriptionChangedEventArgs): void {
        var newVal = (args.newValue as string).toLowerCase();
        var grid = document.getElementById("grid");
        grid.style.setProperty('--ig-size', `var(--ig-size-${newVal})`);
    }
    

    IgcHierarchicalGridComponent의 높이를 변경할 수 있도록 제공하는 또 다른 옵션은 IgcHierarchicalGridComponent 속성 rowHeight 입니다. 이 속성이 레이아웃에 IgcHierarchicalGridComponent--ig-size 어떤 영향을 미치는지 실제로 살펴 보겠습니다.

    다음 사항에 유의하시기 바랍니다.

    • --ig-size CSS 변수가 지정된 경우 rowHeight 행 높이에 영향을 미치지 않습니다.
    • --ig-size 위에서 설명한 것처럼 Hierarchical Grid의 모든 나머지 요소에 영향을 미칩니다.

    이제 샘플을 확장하고 속성을 추가할 rowHeight 수 있습니다. IgcHierarchicalGridComponent

    <igc-hierarchical-grid id="grid" class="gridSize" row-height="80px" width="100%" height="550px" allow-filtering="true">
    </igc-hierarchical-grid>
    

    API References

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