You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor:如何在MudBlazor表格中自动生成行序号?

解决方案

有两种无需修改原有实体类的实现方式,按需选择即可:

方法1:数据源投影(无需依赖表格实例)

利用Linq的Select重载获取元素索引,生成带行号的匿名类型投影,不影响原实体类结构。

<MudTable Items="@Elements.Take(4).Select((item, idx) => new { RowNum = idx + 1, Data = item })" 
          Hover="true" 
          Breakpoint="Breakpoint.Sm" 
          Loading="@_loading" 
          LoadingProgressColor="Color.Info">
    <HeaderContent>
        <MudTh>Nr</MudTh>
        <MudTh>Sign</MudTh>
        <MudTh>Name</MudTh>
        <MudTh>Position</MudTh>
        <MudTh>Molar mass</MudTh>
    </HeaderContent>
    <RowTemplate>
        <MudTd DataLabel="Nr">@context.RowNum</MudTd>
        <MudTd DataLabel="Sign">@context.Data.Sign</MudTd>
        <MudTd DataLabel="Name">@context.Data.Name</MudTd>
        <MudTd DataLabel="Position" HideSmall="_hidePosition">@context.Data.Position</MudTd>
        <MudTd DataLabel="Molar mass">@context.Data.Molar</MudTd>
    </RowTemplate>
</MudTable>

<MudSwitch @bind-Checked="_hidePosition">Hide <b>position</b> when Breakpoint=Xs</MudSwitch>
<MudSwitch @bind-Checked="_loading">Show Loading</MudSwitch>

方法2:调用MudTable原生方法(更简洁)

MudTable自带GetRowIndex方法,可以直接获取当前渲染项的索引,无需修改绑定的数据源。

<MudTable @ref="_mudTableRef" 
          Items="@Elements.Take(4)" 
          Hover="true" 
          Breakpoint="Breakpoint.Sm" 
          Loading="@_loading" 
          LoadingProgressColor="Color.Info">
    <HeaderContent>
        <MudTh>Nr</MudTh>
        <MudTh>Sign</MudTh>
        <MudTh>Name</MudTh>
        <MudTh>Position</MudTh>
        <MudTh>Molar mass</MudTh>
    </HeaderContent>
    <RowTemplate>
        <!-- 索引从0开始,+1转换为自然行号 -->
        <MudTd DataLabel="Nr">@(_mudTableRef.GetRowIndex(context) + 1)</MudTd>
        <MudTd DataLabel="Sign">@context.Sign</MudTd>
        <MudTd DataLabel="Name">@context.Name</MudTd>
        <MudTd DataLabel="Position" HideSmall="_hidePosition">@context.Position</MudTd>
        <MudTd DataLabel="Molar mass">@context.Molar</MudTd>
    </RowTemplate>
</MudTable>

<MudSwitch @bind-Checked="_hidePosition">Hide <b>position</b> when Breakpoint=Xs</MudSwitch>
<MudSwitch @bind-Checked="_loading">Show Loading</MudSwitch>

@code {
    // 声明MudTable实例引用,泛型参数替换为你自己的实体类类型即可
    private MudTable<Element> _mudTableRef;
    private bool _hidePosition;
    private bool _loading;
    private List<Element> Elements = new();
}

分页场景注意事项

如果表格开启了分页功能:

  • 方法1需要手动计算分页偏移,行号公式为:索引 + 1 + (当前页码 - 1) * 每页展示条数
  • 方法2原生适配分页逻辑,返回的就是当前页的自然行号,无需额外调整。

内容的提问来源于stack exchange,提问作者Ibrahim Timimi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:06:03