0

在我的应用程序中,我想创建 N 个页面,其中每个页面可能有一组不同的控件(再次动态填充)。

这是流程,我将选择一个文件,该文件将说明有多少页面以及每个页面要填充哪些控件。

例如,下面是文件的内容。

# of Pages = 2

Page 1:
# of controls =3
Control1.Name ="A"
Control1.type = Dropdown
Control2.Name = "B"
Control2.type ="Textbox"
Control3.Name = "C"
Control3.type ="Textbox"

Page 2:
# of controls = 1
Control1.Name ="X"
Control1.type = Dropdown

我创建了一个 Blazor 页面并编写了 HTML 代码来动态填充控件。但我不确定如何动态创建 Blazor 页面,以便在我的情况下,我可以创建两个页面。

任何输入都会有所帮助。

4

2 回答 2

0

我会拿你的代码:

我创建了一个 Blazor 页面并编写了 HTML 代码来动态填充控件

并创建一个组件,该组件接受一个参数来区分您的页面内容。我用PageNumber你的问题暗示了这一点。

@page "/dynamicPage/{PageNumber:int}"

<SomeDynamicContentMaker Page=@PageNumber />

@code 
{ 
    [Parameter]
    public int PageNumber { get; set; }
}

您可以在一个页面组件中完成所有这些操作,但我喜欢将事情分解为不超过一两个问题。

于 2022-02-02T08:44:27.477 回答
0

实际上,问题在于有太多方法可以做到这一点。我怀疑首先你真的需要说出你为什么要这样做。Blazor 非常擅长模块化组件,您已经可以在任何组件或页面中拥有任何您想要的任意内容。

由于 Blazor 完全是关于条件逻辑的,我建议使用简单的构建一个页面switch

我的页面.razor

@switch (Pagetype){
     case 1:  <MyCustomDropdown Rows=@RowData />
         break;
     case 2:  <MyCustomTextbox Title=@Title  />
         break;
}

@code {
    [Parameter]
    public int Pagetype {get; set;}
}

您还可以考虑查找如何在 Blazor 中使用动态组件: https ://docs.microsoft.com/en-us/aspnet/core/blazor/components/dynamiccomponent?view=aspnetcore-6.0

于 2022-02-02T09:21:22.163 回答