小编Cod*_*eek的帖子

带有索引参数的 Blazor/razor onclick 事件

我有下面的代码,但是当我单击该<tr>元素时传递的索引参数始终为 9。

这是因为表中有 9 行作为数据传递给组件。所以看起来索引总是最后设置的变量“i”的值...在这种情况下,foreach循环中最后一行之后的i的值是9,所以我在单击所有按钮时得到索引参数为9表中的行...

我的代码中的问题是什么,没有i为每行 onclick 设置值。

    <table border="1">

        @for(int i=0;i< ListData.DataView.Table.Rows.Count; i++)
        {
            <tr @onclick="(() => RowSelect(i))">
                @foreach (ModelColumn col in ListData.ListColumns)
                {
                    <td>@ListData.DataView.Table.Rows[i][col.Name]</td>
                }
            </tr>
        }

    </table>
Run Code Online (Sandbox Code Playgroud)
@code {
 
    private async Task  RowSelect(int rowIndex)
    {
        await ListRowSelected.InvokeAsync(rowIndex);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# razor-pages blazor-server-side

14
推荐指数
1
解决办法
6704
查看次数

标签 统计

blazor-server-side ×1

c# ×1

razor-pages ×1