以下是一个示例,演示如何在ASP.NET Core 3.0 Razor页面中从列表创建动态网格:
在Razor页面(.cshtml)中添加以下代码:
@page
@model IndexModel
@{
ViewData["Title"] = "Dynamic Grid";
}
@ViewData["Title"]
@foreach (var column in Model.Columns)
{
@column
}
@foreach (var item in Model.Items)
{
@foreach (var column in Model.Columns)
{
@item[column]
}
}
在页面的对应C#代码文件(.cshtml.cs)中添加以下代码:
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.Collections.Generic;
public class IndexModel : PageModel
{
public List Columns { get; set; }
public List> Items { get; set; }
public void OnGet()
{
// 设置列和数据
Columns = new List { "Name", "Age", "Email" };
Items = new List>
{
new Dictionary { { "Name", "John" }, { "Age", "30" }, { "Email", "john@example.com" } },
new Dictionary { { "Name", "Jane" }, { "Age", "25" }, { "Email", "jane@example.com" } },
new Dictionary { { "Name", "Bob" }, { "Age", "40" }, { "Email", "bob@example.com" } }
};
}
}
这个示例中,我们使用Columns
列表来定义网格的列,使用Items
列表来定义网格的数据行。在Razor页面中,我们使用foreach
循环来遍历Columns
列表,并将每个列名称显示为表头。然后,我们再次使用foreach
循环遍历Items
列表,并通过键值对的方式来访问每个数据行的值,并将其显示为表格中的每个单元格。
在OnGet
方法中,我们设置了Columns
和Items
的值,以便在页面中显示动态网格。您可以根据自己的需求自定义列和数据。
请注意,这只是一个简单的示例,您可以根据自己的需求对其进行调整和扩展。