Blazor 그리드 열 크기 조정 개요

    Blazor Grid의 Ignite UI for Blazor 열 크기 조정 기능을 사용하면 사용자가 IgbGrid의 열 너비를 쉽게 조정할 수 있습니다. 기본적으로 드래그 크기 조정 작업이 적용되는 동안 임시 크기 조정 표시기가 표시됩니다. 사용 가능한 크기 조정 옵션은 여러 가지가 있습니다. 픽셀/백분율로 열 크기 조정, 열 크기 조정 제한, 더블 클릭 시 열 크기 자동 조정, 초기화 시 열 크기 자동 조정.

    Blazor Grid Column Resizing Example

    EXAMPLE
    DATA
    MODULES
    RAZOR
    JS
    CSS

    Like this sample? Get access to our complete Ignite UI for Blazor toolkit and start building your own apps in minutes. Download it for free.

    열 크기 조정은 열 수준별로 활성화됩니다. 즉, IgbGrid 에는 크기 조정 가능한 열과 크기 조정 불가능한 열이 혼합되어 있을 수 있습니다. 이는 IgbColumnResizable 입력을 통해 수행됩니다.

    <IgbColumn Field="ID" Resizable=true Width="100px"></IgbColumn>
    razor

    다음을 구독할 수 있습니다. ColumnResized의 이벤트 IgbGrid 열 크기가 조정될 때 일부 사용자 정의 논리를 구현합니다. 이전 및 새 열 너비뿐만 아니라 IgbColumn 개체는 이벤트 인수를 통해 노출됩니다.

    <IgbGrid Data=data AutoGenerate=false ColumnResized="onResize">
        <IgbColumn Field="ID" Resizable=true Width="100px"></IgbColumn>
        <IgbColumn Field="CompanyName" Resizable=true Width="100px"></IgbColumn>
    </IgbGrid>
    
    @code {
        private void onResize(IgbColumnResizeEventArgs args)
        {
            IgbColumnType col = args.Detail.Column;
            string pWidth = args.Detail.PrevWidth;
            string nWidth = args.Detail.NewWidth;
        }
    }
    razor

    Resizing Columns in Pixels/Percentages

    사용자 시나리오에 따라 열 너비는 픽셀, 백분율 또는 두 가지의 혼합으로 정의될 수 있습니다. 이러한 모든 시나리오는 열 크기 조정 기능으로 지원됩니다. 기본적으로 열에 너비가 설정되지 않은 경우 너비가 픽셀 단위로 설정된 사용 가능한 공간에 맞춰집니다.

    이는 다음 구성이 가능함을 의미합니다.

    <IgbGrid Data=data AutoGenerate=false ColumnResized="onResize">
        <IgbColumn Field="ID" Resizable=true Width="10%"></IgbColumn>
        <IgbColumn Field="CompanyName" Resizable=true Width="100px"></IgbColumn>
        <IgbColumn Field="ContactTitle" Resizable=true></IgbColumn>
    </IgbGrid>
    razor

    There is a slight difference in the way resizing works for columns set in pixels and percentages.

    픽셀

    너비(픽셀)로 열 크기를 조정하는 작업은 열 크기에서 마우스 이동의 수평 크기를 직접 더하거나 빼는 방식으로 수행됩니다.

    백분율

    너비(%)로 열 크기를 조정할 때 마우스 이동의 수평 크기(픽셀)는 대략 그리드 너비에 대한 백분율 크기로 변환됩니다. 열은 계속 반응하며 향후 그리드 크기 조정은 여전히 열에 반영됩니다.

    Restrict Column Resizing

    허용되는 최소 및 최대 열 너비를 구성할 수도 있습니다. 이는 IgbColumnMinWidthMaxWidth 입력을 통해 수행됩니다. 이 경우 크기 조정 표시기 끌기 작업은 MinWidthMaxWidth로 정의된 경계 밖에서 열 크기를 조정할 수 없음을 사용자에게 알리기 위해 제한됩니다.

    <IgbColumn Field="ContactTitle" Resizable=true Width="100px" MinWidth="60px" MaxWidth="230px"></IgbColumn>
    razor

    최소 및 최대 열 너비 값 유형(픽셀 또는 백분율)을 혼합하는 것이 허용됩니다. 최소값과 최대값에 대해 설정된 값이 백분율로 설정되면 각 열 크기는 픽셀과 유사한 정확한 크기로 제한됩니다.

    이는 다음과 같은 구성이 가능함을 의미합니다.

    <IgbColumn Field="ContactTitle" Resizable=true Width="10%" MinWidth="60px" MaxWidth="230px"></IgbColumn>
    razor

    또는

    <IgbColumn Field="ID" Resizable=true Width="100px" MinWidth="5%" MaxWidth="15%"></IgbColumn>
    razor

    Auto-Size Columns on Double Click

    헤더의 오른쪽을 두 번 클릭하면 각 열의 크기가 자동으로 조정될 수 있습니다. 열의 크기는 헤더 자체를 포함하여 현재 표시되는 가장 긴 셀 값으로 조정됩니다. 이 동작은 기본적으로 활성화되어 있으며 추가 구성이 필요하지 않습니다. 그러나 해당 열에 MaxWidth 설정되어 있고 새 너비가 MaxWidth 값을 초과하는 경우 열 크기가 자동으로 조정되지 않습니다. 이 경우 열은 미리 설정된 MaxWidth 값에 따라 크기가 조정됩니다.

    또한 IgbColumn에 노출된 Autosize 메서드를 사용하여 열 크기를 동적으로 자동 조정할 수도 있습니다.

    @code {
        private IgbGrid gridRef;
    
        private void AutosizeColumn()
        {
            IgbColumn column = gridRef.Columns.Where((col) => { return col.Field == "ID"; }).FirstOrDefault();
            column.Autosize(false);
        }
    }
    razor

    Auto-Size Columns on Initialization

    Width 'auto'로 설정하여 초기화 시 각 열의 크기가 자동으로 조정되도록 설정할 수 있습니다.

    <IgbColumn Width="auto"></IgbColumn>
    razor

    열이 뷰에서 처음 초기화되면 너비가 표시되는 가장 긴 셀이나 머리글의 크기로 확인됩니다. 표시되는 행 외부에 있는 셀은 포함되지 않습니다.

    이 접근 방식은 초기화 후 자동 크기 조정보다 성능이 더 최적화되어 있으며 특히 많은 수의 열 크기를 자동 조정해야 하는 경우에 권장됩니다.

    EXAMPLE
    DATA
    MODULES
    RAZOR
    CSS

    Styling

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

    <IgbGrid class="grid"></IgbGrid>
    razor

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

    .grid {
        --ig-grid-resize-line-color: #f35b04;
    }
    css

    Demo

    EXAMPLE
    DATA
    MODULES
    RAZOR
    CSS

    API References

    Additional Resources

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