0

我在 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('}'));
            }
        }
    }
}
4

0 回答 0