我在 Razor 页面中使用 MatTabGroup 控件。我在第一个选项卡中有一个表格,它在一列中显示字段名称列表,在第二列中显示一个输入框以捕获每个字段的值。
如何创建动态属性以绑定到控件,以便在选项卡之间切换时保留数据?字段名称不是标准的,并且在编译时也不知道字段名称的数量。它们需要动态生成。
感谢您的任何建议!
<MatTabGroup>
<MatTab Label="Tab1">
<ItemsTable Items="@lstFieldNames">
<TableHeader>
<th>Name</th>
<th>Value</th>
</TableHeader>
<RowTemplate Context="fieldname">
<td>@fieldname</td>
<td>
<input id="@fieldname" type="text" class="input-md"/>
</td>
</RowTemplate>
</ItemsTable>
</MatTab>
<MatTab Label="Tab2">
</MatTab>
</MatTabGroup>
@code {
BlazorApp.Shared.Models.Template tmp;
List<string> lstFieldNames = new List<string>();
protected override async Task OnInitializedAsync()
{
if (tmp != null)
{
//Example FieldTemplate: //{CustName}/{Address}/{City}/{State}/{Zip}
var fieldnames = Regex.Matches(tmp.FieldTemplate, @"{\w+}");
foreach (var fieldname in fieldnames)
{
lstFieldNames.Add(fieldname.ToString().TrimStart('{').TrimEnd('}'));
}
}
}
}