Blazor 表格
下面是一个简单的Blazor表格示例,用于显示学生信息数据。
假设我们有一个Student类和一个StudentService类来提供学生数据。
首先,定义Student
类:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public int Age { get; set; }
}
然后,创建一个StudentService
类来模拟数据访问:
public class StudentService
{
private static List<Student> students = new List<Student>
{
new Student { Id = 1, Name = "张三", Email = "zhangsan@example.com", Age = 20 },
new Student { Id = 2, Name = "李四", Email = "lisi@example.com", Age = 21 },
new Student { Id = 3, Name = "王五", Email = "wangwu@example.com", Age = 19 }
// 添加更多学生数据...
};
public Task<List<Student>> GetStudentsAsync()
{
return Task.FromResult(students);
}
}
接下来,创建StudentTable.razor
组件,使用@foreach
循环来遍历学生列表,并创建一个表格来显示数据:
@page "/student-table"
@rendermode @(new InteractiveServerRenderMode(prerender: true))
@using BlazorDemoApp.Services
@using BlazorDemoApp.Models
<h1>学生信息表格</h1>
<table class="table">
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>邮箱</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
@if (students == null)
{
<tr><td><em>加载中...</em></td></tr>
}
else
{
@foreach (var student in students)
{
<tr>
<td>@student.Id</td>
<td>@student.Name</td>
<td>@student.Email</td>
<td>@student.Age</td>
</tr>
}
}
</tbody>
</table>
@code {
private List<Student> students;
protected override async Task OnInitializedAsync()
{
students = await new StudentService().GetStudentsAsync();
}
}
在这个例子中,@page "/student-table"
指令告诉Blazor这个组件应该响应/student-table
路由。
在@code
块中,我们重写了OnInitializedAsync
方法,它是组件初始化时调用的异步生命周期方法。在这个方法中,我们调用StudentService的GetStudentsAsync
方法来获取学生列表,并将其存储在students
字段中。我们使用@if
和@foreach
指令来控制表格行的渲染。如果students列表为空(例如,在数据加载期间),则显示一个加载中的消息。否则,我们遍历students
列表并为每个学生创建一行。
示例代码
学习技术最好的文档就是【官方文档】,没有之一。
还有学习资料【Microsoft Learn】、【CSharp Learn】、【My Note】。
如果,你认为阅读这篇博客让你有些收获,不妨点击一下右下角的【推荐】按钮。
如果,你希望更容易地发现我的新博客,不妨点击一下【关注】。