닷넷관련/ASP.NET CORE 🍔

QuickGrid for Blazor 알아보기 ( .NET 8)

재우니 2024. 1. 15. 22:20

 


가장 일반적인 요구 사항을 가진 Blazor 개발자에게 편리하고 간단하며 유연한 데이터 그리드 구성 요소를 제공합니다 .
Blazor DataGrid 구성 요소를 구축하는 모든 사람에게 참조 아키텍처( reference architecture ) 및 성능 기준( performance baseline) 을 제공합니다 . 


QuickGrid는 상용만큼의 다양한 기능이 아닌, 가장 핵심적인 그리드 기능과 핵심 기본 사항에 필요한 사항만 추가하고 있습니다.

 

  • Performance (성능)
  • Accessibility (접근성)
  • Internationalization (including RTL languages) (국제화)
  • Extensibility (확장성)

 

 

표나 그리드를 표시하는 것은 웹 애플리케이션에서 가장 일반적인 요구 사항 중 하나입니다. ASP.NET Core 및 Blazor에 사용할 수 있는 타사 그리드 구성 요소는 많이 있습니다. 그러나 정렬, 페이징 및 필터링 기능이 있는 기본적인 표 표시가 필요한 경우 Blazor 팀에서 개발한 QuickGrid 구성 요소만 있으면 됩니다. 이 문서에서는 QuickGrid의 몇 가지 기능과 기능을 살펴봅니다.

Blazor용 QuickGrid 컴포넌트는 모든 IQueryable의 데이터를 표시하는 데 사용할 수 있으며, GridItemsProvider 콜백에서 데이터를 가져올 수도 있습니다. 다음 예제에서는 주로 EntityFramework Core 의 IQueryable을 데이터 소스로 사용하겠습니다. QuickGrid 컴포넌트는 웹 어셈블리뿐만 아니라 Blazor 서버에서도 사용할 수 있지만 예제에서는 Blazor 서버를 사용하겠습니다.


상세 샘플 설명 예제

 

https://www.binaryintellect.net/articles/7155b7d3-ca08-4d73-bc53-68da88d5e7c5.aspx

 

Display tabular data using QuickGrid for Blazor | BinaryIntellect Knowledge Base

Displaying tables or grids is one of the most common requirements in web applications. There are plenty of third-party grid components available for ASP.NET Core and Blazor. However, if you require basic tabular display with sorting, paging, and filtering

www.binaryintellect.net

 

 

Blazor  의 QuickGrid 컴포넌트에 대해 어느 정도는 알고 계실 것 같습니다. 보시다시피 QuickGrid는 표 형식의 데이터를 표시하기 위한 기본 기능을 제공합니다. QuickGrid에 대한 자세한 내용은 공식 문서에서 확인할 수 있습니다.

 

아래는 많은 샘플 예제를 제공합니다. 참고로 QuickGrid는 .NET 8 에서 공식적으로 지원됩니다.

 

https://aspnet.github.io/quickgridsamples/

 

Intro

Purpose and goals QuickGrid isn't intended to replace advanced datagrid components such as those from commercial component vendors. Instead, the purpose is: To provide a convenient, simple, and flexible datagrid component for Blazor developers with the mos

aspnet.github.io

 

 

코드 맞보기

 

@inject DataSource Data

<div class="grid">
    <QuickGrid Items="@FilteredItems" Pagination="@pagination">
        <TemplateColumn Title="Rank" SortBy="@rankSort" Align="Align.Center" InitialSortDirection="SortDirection.Ascending" IsDefaultSortColumn="true">
            <img class="flag" src="flags/@(context.Code).svg" />
        </TemplateColumn>
        <PropertyColumn Property="@(c => c.Name)" Sortable="true" Class="country-name">
            <ColumnOptions>
                <div class="search-box">
                    <input type="search" autofocus @bind="nameFilter" @bind:event="oninput" placeholder="Country name..." />
                </div>
            </ColumnOptions>
        </PropertyColumn>
        <PropertyColumn Property="@(c => c.Medals.Gold)" Sortable="true" Align="Align.Right" />
        <PropertyColumn Property="@(c => c.Medals.Silver)" Sortable="true" Align="Align.Right" />
        <PropertyColumn Property="@(c => c.Medals.Bronze)" Sortable="true" Align="Align.Right" />
        <PropertyColumn Property="@(c => c.Medals.Total)" Sortable="true" Align="Align.Right" />
    </QuickGrid>
</div>

<Paginator State="@pagination" />

@code {
    IQueryable<Country>? items;
    PaginationState pagination = new PaginationState { ItemsPerPage = 15 };
    string nameFilter = string.Empty;

    GridSort<Country> rankSort = GridSort<Country>
        .ByDescending(x => x.Medals.Gold)
        .ThenDescending(x => x.Medals.Silver)
        .ThenDescending(x => x.Medals.Bronze);

    IQueryable<Country>? FilteredItems => items?.Where(x => x.Name.Contains(nameFilter, StringComparison.CurrentCultureIgnoreCase));

    protected override async Task OnInitializedAsync()
    {
        items = (await Data.GetCountriesAsync()).AsQueryable();
    }
}

 

 

정렬과, 검색 그리고 페이징을 기반으로 필요한 부분을 지원 합니다.

 

 

 

Blazor   자주 묻는 질문들

 

Blazor 에 대해서 궁금하신 분들은 여기 아래 링크를 통해 확인해 보세요. 참고로 Blazor 는 모던 SPA 앱 프레임워크인 React, Angular, 그리고 Vue에서 영감을 얻어 만든 새로운 프레임워크 입니다.

 

 

https://github.com/rkttu/asp-net-blazor-krguide/blob/master/faq.md