Blazor 中返回字符串

max*_*xba 1 html datatable converters blazor

我有一个从 DataTable 创建 html 表的函数。我附上了下面的代码。现在我的问题是,如何在 Blazor 应用程序中将字符串转换为 HTML 代码?

感谢您的努力。:)

public static string ConvertDataTableToHtml(DataTable dt)
    {
        string html = "<table>";
        //add header row
        html += "<tr>";
        for (int i = 0; i < dt.Columns.Count; i++)
            html += "<td>" + dt.Columns[i].ColumnName + "</td>";
        html += "</tr>";
        //add rows
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            html += "<tr>";
            for (int j = 0; j < dt.Columns.Count; j++)
                html += "<td>" + dt.Rows[i][j].ToString() + "</td>";
            html += "</tr>";
        }
        html += "</table>";
        return html;
    }
Run Code Online (Sandbox Code Playgroud)

Ben*_*973 6

无论你想做什么,停下来。这不是办法。您必须拥抱 Blazor 的强大之处。

它应该看起来像这样(我没有测试这个,只是为了向您展示这个想法):

TableComponent.razor

<table>
    <thead>
            <tr>
            @for (int i = 0; i < dt.Columns.Count; i++)
            {
                <td>@dt.Columns[i]</td>
            }
            </tr>
    </thead>
    <tbody>
        //add rows
        @for (int i = 0; i < dt.Rows.Count; i++)
        {
            <tr>
            @for (int j = 0; j < dt.Columns.Count; j++)
            {
                <td>@dt.Rows[i][j].ToString()</td>
            }
        }
    </tbody>
</table>

@code {
    [Parameter]
    DataTable dt {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

ParentComponentOrPage.razor

<TableComponent dt="@MyData"/>

@code
{
    DataTable MyData;  // Do something in override OnInitializedAsync  to fill your table.
}
Run Code Online (Sandbox Code Playgroud)

看看你的字符串构建代码,再看看性感甜蜜的 Blazor 等效代码,你就会知道 Microsoft 在过去几年里做了计算领域最酷的事情!:D