C# 在Blazor中加载大列表

C# 在Blazor中加载大列表,c#,signalr,blazor,blazor-server-side,C#,Signalr,Blazor,Blazor Server Side,我想在我有一个信号机连接的时候加载一个学生列表,请求得到所有学生。我想向下滚动列表,它将一次加载100名学生 <ul> @if (Students != null) { @foreach (var student in Students) { <li>

我想在我有一个信号机连接的时候加载一个学生列表,请求得到所有学生。我想向下滚动列表,它将一次加载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();
         }   
        }
    @如果(学生!=null) { @foreach(学生中的var学生) {
  • @计划,名字
  • } }
@代码 { 私有列表学生{get;set;} 受保护的重写异步任务OnInitializedAsync() { 学生=等待学生连接。GetStudents(); } }
<代码> > p>我相信您应该考虑存储过程级别的解决方案。 选择top 100 where,并在其中设置一个参数@next
使用witch,当您向下滚动到列表末尾时,您可以通过按钮或事件从应用程序进行控制

您可以使用分页并实现寻呼机组件。看看这两篇文章,它们可能会对您有所帮助:而且部分内容是纯blazor无法完成的。我一直在做大量的搜索,有一个原因是像syncfusion这样的付费库可以帮助解决这些问题。

一个
不支持滚动。也许从DataGrid组件开始。