如何调整AntDesign/Blazor Table布尔筛选列中True与False的顺序
AntDesign Blazor Table布尔列让False排在True前的低影响方案
方案1:自定义列的SortComparer(前端处理)
直接为布尔列指定自定义排序比较器,无需修改数据模型,对现有代码影响极小。修改你的Column代码如下:
<Column TData="bool" Title="Done" @bind-Field="context.Done" Sortable Filterable SortComparer="@((x, y) => x.Done.CompareTo(y.Done) * -1)" />
说明
默认布尔值比较逻辑中,False(对应数值0)小于True(对应数值1),升序排序会默认把False放在前面;如果你的场景是点击排序按钮后需要固定False在前,通过反转比较结果(乘-1),可以让排序逻辑始终优先展示False项。若需要页面默认加载时就按此顺序排列,可给Table添加默认排序配置:
<Table DataSource="ObjectModel" Loading="IsLoading" TItem="DataModel" RemoteDataSource DefaultSortField="@nameof(DataModel.Done)" DefaultSortOrder="SortOrder.Ascend"> <!-- 列配置 --> </Table>
方案2:远程数据源下调整后端排序逻辑
由于你开启了RemoteDataSource,Table的排序参数会传递到后端。可以在后端接收排序请求时,对Done字段的排序方向做反转处理,前端代码无需改动,影响范围仅限后端排序逻辑。
示例后端处理逻辑(以C#为例):
// 假设接收的排序参数对象为SortModel if (sortModel.Field == nameof(DataModel.Done)) { // 反转排序方向:升序变降序,降序变升序 sortModel.Order = sortModel.Order == SortOrder.Ascend ? SortOrder.Descend : SortOrder.Ascend; } // 后续按调整后的排序参数执行数据库查询
内容的提问来源于stack exchange,提问作者Sobi
相关产品推荐
相关产品推荐

