首页 > 解决方案 > 在 Blazor 中加载一个大列表

问题描述

我想在我有信号器连接并且请求获取所有学生的那一刻加载学生列表。我想向下滚动列表,它会一次加载 100 名学生?

<ul>
            @if (Students != null)
                {
                    @foreach (var student in Students)
                    {
                        <li>
                            <div class="treeview__item__header">
                                @plan.Name
                            </div>
                        </li>
                    }
                }
         </ul>


        @code
        {   
         private List<StudentsData> Students { get; set; } 

         protected override async Task OnInitializedAsync()
         {
             Students = await StudentsConnection.GetStudents();
         }   
        }

标签: c#signalrblazorblazor-server-side

解决方案


我已经成功地使用了这个例子:

https://github.com/amuste/DnetVirtualScrolling

或者,正如亚历山大所说,一个简单的寻呼机计算要显示的行数,似乎是最好的“纯 blazor”解决方案

编辑:看起来 Virtualize 可能非常适合这种用途:

https://www.syncfusion.com/blogs/post/asp-net-core-blazor-component-virtualization-in-net-5.aspx


推荐阅读