Blazor 목록 개요
The Ignite UI for Blazor List element is extremely useful when presenting a group of items. You can create a simple list of textual items, or a more complex one, containing an array of different layout elements. The IgbList component displays rows of items and supports one or more headers as well. Each list item is completely templatable and will support any valid HTML or other components.
Blazor List Example
The following example represents a list populated with contacts with a name and a phone number properties. The IgbList component demonstrated below uses the IgbAvatar and IgbButton elements to enrich the user experience and expose the capabilities of setting avatar picture and buttons for text and call actions.
Usage
기본적으로 목록 웹 구성 요소를 사용하면 항목의 수직 목록을 쉽게 표시할 수 있습니다.
사용하기IgbList 전에 다음과 같이 등록해야 합니다:
// in Program.cs file
builder.Services.AddIgniteUIBlazor(typeof(IgbListModule));
스타일링을 컴포넌트에 적용하려면 추가 CSS 파일을 연결해야 합니다IgbList. 다음 내용은 Blazor Web Assembly 프로젝트의 wwwroot/index.html 파일 또는 Blazor Server 프로젝트의 Pages/_Host.cshtml 파일에 포함되어야 합니다:
<link href="_content/IgniteUI.Blazor/themes/light/bootstrap.css" rel="stylesheet" />
Ignite UI for Blazor에 대한 완전한 소개는 '시작 주제'를 읽어보세요.
Add List Items
이제 다음 코드를 추가하여 간단한 항목 목록을 얻을 수 있습니다.
<IgbList>
<IgbListHeader>Header</IgbListHeader>
<IgbListItem>
<h2 slot="title">Item 1</h2>
</IgbListItem>
<IgbListItem>
<h2 slot="title">Item 2</h2>
</IgbListItem>
<IgbListItem>
<h2 slot="title">Item 3</h2>
</IgbListItem>
</IgbList>
모든 것이 순조롭게 진행되면 브라우저에 다음이 표시됩니다.
게임을 조금 강화하고 목록 항목을 향상시켜 보겠습니다. 이름 아래에 이름과 전화번호가 표시되는 연락처 목록을 만들고 싶다고 가정해 보겠습니다. 이를 달성하기 위해 다음 예에서 설명한 대로 목록 항목과 함께 제공되는 일부 슬롯을 사용할 수 있습니다.
<IgbList>
<IgbListHeader>
<h1>Contacts</h1>
</IgbListHeader>
<IgbListItem>
<h2 slot="title">Terrance Orta</h2>
<span slot="subtitle">770-504-2217</span>
</IgbListItem>
<IgbListItem>
<h2 slot="title">Richard Mahoney</h2>
<span slot="subtitle">423-676-2869</span>
</IgbListItem>
<IgbListItem>
<h2 slot="title">Donna Price</h2>
<span slot="subtitle">859-496-2817</span>
</IgbListItem>
</IgbList>
위의 코드를 구현한 후 목록 구성 요소는 이제 다음과 같아야 합니다.
Adding Avatar and Buttons
We can use some of our other components in conjunction with the IgbList component to enrich the experience and add some functionality. We can have a nice picture avatar to the left of the name and phone values. Additionally, we can add some buttons to the right of them to allow the user to text and call contacts, so let's update our contacts list component to show the avatar and the buttons. We can do that by using some of the list item's slots.
<IgbList>
<IgbListHeader>
<h1>Contacts</h1>
</IgbListHeader>
<IgbListItem>
<IgbAvatar slot="start" src="https://static.infragistics.com/xplatform/images/avatars/8.jpg" Shape="@AvatarShape.Circle"/>
<h2 slot="title">Terrance Orta</h2>
<span slot="subtitle">770-504-2217</span>
<IgbButton slot="end" Variant="@ButtonVariant.Outlined">Text</IgbButton>
<IgbButton slot="end" Variant="@ButtonVariant.Outlined">Call</IgbButton>
</IgbListItem>
<IgbListItem>
<IgbAvatar slot="start" src="https://static.infragistics.com/xplatform/images/avatars/17.jpg" Shape="@AvatarShape.Circle"/>
<h2 slot="title">Richard Mahoney</h2>
<span slot="subtitle">423-676-2869</span>
<IgbButton slot="end" Variant="@ButtonVariant.Outlined">Text</IgbButton>
<IgbButton slot="end" Variant="@ButtonVariant.Outlined">Call</IgbButton>
</IgbListItem>
<IgbListItem>
<IgbAvatar slot="start" src="https://static.infragistics.com/xplatform/images/avatars/9.jpg" Shape="@AvatarShape.Circle"/>
<h2 slot="title">Donna Price</h2>
<span slot="subtitle">859-496-2817</span>
<IgbButton slot="end" Variant="@ButtonVariant.Outlined">Text</IgbButton>
<IgbButton slot="end" Variant="@ButtonVariant.Outlined">Call</IgbButton>
</IgbListItem>
</IgbList>
The start slot is meant to be used for adding some kind of media before all other content of our list items. The target element, in our case the IgbAvatar component, will also be provided with a default position and spacing.
The end slot is meant to be used for list items that have some kind of action or metadata, represented, for example, by a switch, a button, a checkbox, etc. We will use IgbButton components.
Let's also allow the user to change the size of the list using the --ig-size CSS variable. We will add some radio buttons to display all size values. This way whenever one gets selected, we will change the size of the list.
<IgbRadioGroup Alignment="@ContentOrientation.Horizontal">
<IgbRadio Value="Small" label-position="after" Change="OnRadioOptionClick">Small</IgbRadio>
<IgbRadio Value="Medium" label-position="after" Change="OnRadioOptionClick">Medium</IgbRadio>
<IgbRadio Value="Large" label-position="after" Checked="true" Change="OnRadioOptionClick">Large</IgbRadio>
</IgbRadioGroup>
<IgbList style="margin-top: 10px;" Size="@ListSize" />
@code {
public SizableComponentSize ListSize { get; set; }
public void OnRadioOptionClick(IgbComponentBoolValueChangedEventArgs e)
{
IgbRadio radio = e.Parent as IgbRadio;
switch (radio.Value)
{
case "Small":
{
this.ListSize = SizableComponentSize.Small;
break;
}
case "Medium":
{
this.ListSize = SizableComponentSize.Medium;
break;
}
case "Large":
{
this.ListSize = SizableComponentSize.Large;
break;
}
}
}
}
위 코드를 구현한 결과는 다음과 같아야 합니다.
Styling
The IgbList exposes several CSS parts, giving you full control over its style:
| 이름 | 설명 |
|---|---|
start |
시작 컨테이너입니다. |
end |
끝 컨테이너입니다. |
content |
헤더 및 사용자 지정 콘텐츠 컨테이너입니다. |
header |
제목 및 부제목 컨테이너입니다. |
title |
제목 컨테이너입니다. |
subtitle |
자막 컨테이너입니다. |
igc-list-header {
font-size: 20px;
font-weight: 700;
color: var(--ig-primary-700);
}
igc-list-item::part(title) {
font-size: 18px;
color: var(--ig-primary-600);
}
igc-list-item::part(subtitle) {
color: var(--ig-primary-300);
}
In this article we covered a lot of ground with the IgbList component. First, we created a simple list with text items. Then, we created a list of contact items and added functionality to them by using some additional Ignite UI for Blazor components, like the IgbAvatar and IgbButton. Finally, we changed the component's appearance through the exposed CSS parts.