Skip to content

Blazor components for efficiently rendering large lists and data using virtual scrolling

License

Notifications You must be signed in to change notification settings

legistek/BlazorVirtualScrolling

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BlazorVirtualScrolling

Material Design components for Blazor and Razor Components

NuGet Gitter GitHub Stars GitHub Issues Live Demo MIT Donate

The VirtualScroll displays large lists of elements performantly by only rendering the items that fit on-screen. Loading hundreds of elements can be slow in any browser; virtual scrolling enables a performant way to simulate all items being rendered by making the height of the container element the same as the height of total number of elements to be rendered, and then only rendering the items in view.

Demo and Documentation

Prerequisites

Don't know what Blazor is? Read here

Complete all Blazor dependencies.

  • .NET Core 3.0 Preview 4 SDK (3.0.0-preview4-19216-03)
  • Visual Studio 2019 Preview 4 with the ASP.NET and web development workload selected.
  • The latest Blazor extension from the Visual Studio Marketplace.
  • The Blazor templates on the command-line: dotnet new -i Microsoft.AspNetCore.Blazor.Templates::3.0.0-preview4-19216-03

Installation

Latest version in here: NuGet

To Install

Install-Package BlazorVirtualScrolling

or

dotnet add package BlazorVirtualScrolling

Usage

@using BlazorVirtualScrolling

<VirtualScroll style="height: 500px;" ItemType="string" Items="@items" ItemHeight="50">
    <div>@context</div>
</VirtualScroll>

@functions
{
    public IEnumerable<string> items = Enumerable.Range(0, 1000000).Select(i => i.ToString()).ToArray();
}

BlazorVirtualScrolling components for server-side Blazor (Razor Components)

  • Startup.cs
app.UseEmbeddedBlazorContent(typeof(BlazorVirtualScrolling.VirtualScroll).Assembly);
  • _Host.cshtml (head section)
@using EmbeddedBlazorContent
<head>
    ...
    @Html.EmbeddedBlazorContent()
</head>

Questions

For how-to questions and other non-issues, for now you can use issues or you can use Gitter.

Contributing

We'd greatly appreciate any contribution you make. :)

License

This project is licensed under the terms of the MIT license.

News

Version 1.0.0

  • First version of VirtualScroll component, proof of concept

About

Blazor components for efficiently rendering large lists and data using virtual scrolling

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 46.9%
  • C# 40.0%
  • JavaScript 9.1%
  • CSS 4.0%