A data list component for displaying collections of items using custom templates, with support for paging and virtualization. RadzenDataList provides a flexible way to render data in cards, tiles, or custom layouts instead of traditional table rows. Ideal when you need more control over item presentation than a traditional table provides. Perfect for product catalogs, image galleries, card-based dashboards, or any non-tabular data display. Supports complete control over item rendering via Template parameter, built-in paging with configurable page size, item wrapping to multiple columns/rows based on container width, efficient rendering for large datasets via virtualization, customizable message or template for empty state when no data exists, and on-demand data loading for server-side paging via LoadData. Use Template to define how each item should be rendered. The template receives the item as @context. Combine with RadzenRow/RadzenColumn for grid-based layouts or RadzenCard for card designs.
IComponent
IHandleEvent
IHandleAfterRender
PagedDataBoundComponent<TItem>.OnCollectionChanged
PagedDataBoundComponent<TItem>.Dispose
PagedDataBoundComponent<TItem>.OnDataChanged
PagedDataBoundComponent<TItem>.SetParametersAsync
PagedDataBoundComponent<TItem>.OnParametersSetAsync
PagedDataBoundComponent<TItem>.OnAfterRenderAsync
PagedDataBoundComponent<TItem>.OnPageChanged
PagedDataBoundComponent<TItem>.OnPageSizeChanged
PagedDataBoundComponent<TItem>.CalculatePager
PagedDataBoundComponent<TItem>.GoToPage
PagedDataBoundComponent<TItem>.FirstPage
PagedDataBoundComponent<TItem>.PrevPage
PagedDataBoundComponent<TItem>.NextPage
PagedDataBoundComponent<TItem>.LastPage
PagedDataBoundComponent<TItem>.PagerPosition
PagedDataBoundComponent<TItem>.PagerAlwaysVisible
PagedDataBoundComponent<TItem>.PagerHorizontalAlign
PagedDataBoundComponent<TItem>.Density
PagedDataBoundComponent<TItem>.AllowPaging
PagedDataBoundComponent<TItem>.PageSize
PagedDataBoundComponent<TItem>.PageNumbersCount
PagedDataBoundComponent<TItem>.Count
PagedDataBoundComponent<TItem>.CurrentPage
PagedDataBoundComponent<TItem>.Template
PagedDataBoundComponent<TItem>.LoadingTemplate
PagedDataBoundComponent<TItem>.Data
PagedDataBoundComponent<TItem>.PageSizeOptions
PagedDataBoundComponent<TItem>.PageSizeText
PagedDataBoundComponent<TItem>.ShowPagingSummary
PagedDataBoundComponent<TItem>.PagingSummaryFormat
PagedDataBoundComponent<TItem>.PagingSummaryTemplate
PagedDataBoundComponent<TItem>.FirstPageTitle
PagedDataBoundComponent<TItem>.FirstPageAriaLabel
PagedDataBoundComponent<TItem>.PrevPageLabel
PagedDataBoundComponent<TItem>.PrevPageTitle
PagedDataBoundComponent<TItem>.PrevPageAriaLabel
PagedDataBoundComponent<TItem>.LastPageTitle
PagedDataBoundComponent<TItem>.LastPageAriaLabel
PagedDataBoundComponent<TItem>.NextPageLabel
PagedDataBoundComponent<TItem>.NextPageTitle
PagedDataBoundComponent<TItem>.NextPageAriaLabel
PagedDataBoundComponent<TItem>.PageTitleFormat
PagedDataBoundComponent<TItem>.PageAriaLabelFormat
PagedDataBoundComponent<TItem>.PagedView
PagedDataBoundComponent<TItem>.View
PagedDataBoundComponent<TItem>.LoadData
PagedDataBoundComponent<TItem>.Page
PagedDataBoundComponent<TItem>.skip
PagedDataBoundComponent<TItem>.topPager
PagedDataBoundComponent<TItem>.bottomPager
RadzenComponent.RaiseContextMenu
RadzenComponent.RaiseMouseEnter
RadzenComponent.AddContextMenu
RadzenComponent.RaiseMouseLeave
RadzenComponent.OnBecameInvisible
RadzenComponent.DefaultCulture
RadzenComponent.IsJSRuntimeAvailable
ComponentBase.OnInitializedAsync
ComponentBase.OnParametersSet
ComponentBase.StateHasChanged
ComponentBase.ShouldRender
ComponentBase.OnAfterRender
ComponentBase.InvokeAsync
ComponentBase.DispatchExceptionAsync
ComponentBase.RendererInfo
ComponentBase.Assets
ComponentBase.AssignedRenderMode
Namespace: Radzen.Blazor
Assembly: Radzen.Blazor.dll
public class RadzenDataList<TItem> : PagedDataBoundComponent<TItem>, IComponent, IHandleEvent, IHandleAfterRender| Name | Description |
|---|---|
| TItem | The type of data items in the list. Each item is rendered using the Template. |
Basic data list with card template:
<RadzenDataList Data=@products TItem="Product" AllowPaging="true" PageSize="12">
<Template Context="product">
<RadzenCard Style="width: 250px; margin: 1rem;">
<RadzenImage Path=@product.ImageUrl Style="width: 100%;" />
<RadzenText TextStyle="TextStyle.H6">@product.Name</RadzenText>
<RadzenText>@product.Price.ToString("C")</RadzenText>
</RadzenCard>
</Template>
</RadzenDataList>
Data list with empty state:
<RadzenDataList Data=@items TItem="Item" WrapItems="true" ShowEmptyMessage="true" EmptyText="No items found">
<Template Context="item">
<div class="item-card">@item.Name</div>
</Template>
</RadzenDataList>A data list component for displaying collections of items using custom templates, with support for paging and virtualization. RadzenDataList provides a flexible way to render data in cards, tiles, or custom layouts instead of traditional table rows. Ideal when you need more control over item presentation than a traditional table provides. Perfect for product catalogs, image galleries, card-based dashboards, or any non-tabular data display. Supports complete control over item rendering via Template parameter, built-in paging with configurable page size, item wrapping to multiple columns/rows based on container width, efficient rendering for large datasets via virtualization, customizable message or template for empty state when no data exists, and on-demand data loading for server-side paging via LoadData. Use Template to define how each item should be rendered. The template receives the item as @context. Combine with RadzenRow/RadzenColumn for grid-based layouts or RadzenCard for card designs.
public RadzenDataList<TItem>()Gets or sets whether the DataList uses virtualization to improve performance with large datasets. When enabled, only visible items are rendered in the DOM, significantly improving performance for long lists.
public bool AllowVirtualization { get; set; }
| Type | Description |
|---|---|
| bool | Gets or sets whether the DataList uses virtualization to improve performance with large datasets. When enabled, only visible items are rendered in the DOM, significantly improving performance for long lists. |
Gets or sets a custom template for rendering the empty state when the data source has no items. Takes precedence over EmptyText when both are set. Use this for rich empty states with images, icons, or action buttons.
public RenderFragment EmptyTemplate { get; set; }
| Type | Description |
|---|---|
| RenderFragment | Gets or sets a custom template for rendering the empty state when the data source has no items. Takes precedence over EmptyText when both are set. Use this for rich empty states with images, icons, or action buttons. |
Gets or sets the text message displayed when the data source is empty. Only shown if ShowEmptyMessage is true and no EmptyTemplate is specified.
public string EmptyText { get; set; }
| Type | Description |
|---|---|
| string | Gets or sets the text message displayed when the data source is empty. Only shown if ShowEmptyMessage is true and no EmptyTemplate is specified. |
Gets or sets a value indicating whether this instance loading indicator is shown.
public bool IsLoading { get; set; }
| Type | Description |
|---|---|
| bool | Gets or sets a value indicating whether this instance loading indicator is shown. |
Gets or sets whether to display an empty message when the data source has no items. Enable this to show EmptyText or EmptyTemplate when the list is empty, providing user feedback.
public bool ShowEmptyMessage { get; set; }
| Type | Description |
|---|---|
| bool | Gets or sets whether to display an empty message when the data source has no items. Enable this to show EmptyText or EmptyTemplate when the list is empty, providing user feedback. |
Gets Virtualize component reference.
public Virtualization.Virtualize<TItem> Virtualize { get; }
| Type | Description |
|---|---|
| Virtualization.Virtualize<TItem> | Gets Virtualize component reference. |
Gets or sets whether items should wrap to multiple rows based on their width and the container size. When true, items flow horizontally and wrap like words in a paragraph. When false, items stack vertically.
public bool WrapItems { get; set; }
| Type | Description |
|---|---|
| bool | Gets or sets whether items should wrap to multiple rows based on their width and the container size. When true, items flow horizontally and wrap like words in a paragraph. When false, items stack vertically. |
protected override void BuildRenderTree(Rendering.RenderTreeBuilder __builder)
| Type | Name | Description |
|---|---|---|
| Rendering.RenderTreeBuilder | __builder |
protected override string GetComponentCssClass()
| Type | Description |
|---|---|
| string |
Reloads this instance.
public override Task Reload()
| Type | Description |
|---|---|
| Task |