AdminTable 组件
概述
AdminTable 是一个通用的数据表格组件,基于 BootstrapBlazor 的 Table 组件扩展而来,提供了数据管理、导入导出、权限控制等增强功能。
功能特性
- 支持数据增删改查
- 支持Excel导入导出
- 支持树形表格展示
- 内置权限控制
- 支持自定义查询和操作事件
参数说明
类型参数
TItem
: 实体类型,必须实现 IEntity<TKey>
接口
TKey
: 主键类型
属性参数
参数名 |
类型 |
说明 |
ShowImportButton |
bool |
是否显示导入按钮 |
OnImportAsync |
Func<IEnumerable, Task> |
自定义导入逻辑 |
GetParentId |
Func<TItem, TKey> |
树型ParentId委托 |
UseDataPermission |
bool |
是否使用数据权限 |
IgnoreSearchColumns |
Expression<Func<TItem, object>> |
忽略查询的属性名 |
事件参数
事件名 |
类型 |
说明 |
OnBeforeQuery |
EventCallback<AdminQueryEventArgs> |
查询前事件 |
OnBeforeSaveAsync |
EventCallback<AdminSaveEventArgs> |
保存前事件 |
OnFinishSaveAsync |
EventCallback<AdminSaveEventArgs> |
保存后事件 |
OnBeforeDeleteAsync |
EventCallback<AdminRemoveEventArgs> |
删除前事件 |
OnFinishDeleteAsync |
EventCallback<AdminRemoveEventArgs> |
删除后事件 |
OnBeforeImportAsync |
EventCallback<AdminImportEventArgs> |
导入前事件 |
OnFinishImportAsync |
EventCallback<AdminImportEventArgs> |
导入后事件 |
方法
公共方法
GetSelect()
: 获取查询对象
GetExportColumns()
: 获取导出列
Reload()
: 重新加载数据
私有方法
OnExportAllAsync()
: 执行数据导出
OnQueryDataAsync()
: 执行数据查询
OnSaveDataAsync()
: 执行数据保存
OnDeleteDataAsync()
: 执行数据删除
TableTreeNodeConverter()
: 树形数据转换
使用示例
<AdminTable TItem="SysUser" TKey="long"
ShowImportButton="true"
OnBeforeImportAsync="OnBeforeImportAsync">
<TableColumn TItem="SysUser" Field="@nameof(SysUser.Username)" />
<TableColumn TItem="SysUser" Field="@nameof(SysUser.Nickname)" />
</AdminTable>
注意事项
- 导入文件大小限制为5MB
- 使用数据权限时实体必须实现IDataPermission和IEntityCreated接口
- 组件会自动处理权限按钮的显示控制