0

0

浅析BootstrapBlazor中Table组件的自动生成列功能

青灯夜游

青灯夜游

发布时间:2022-02-28 11:01:36

|

4158人浏览过

|

来源于博客园

转载

下面bootstrap栏目带大家了解一下bootstrapblazor中的table组件,介绍一下table组件的自动生成列功能,希望对大家有所帮助!

浅析BootstrapBlazor中Table组件的自动生成列功能

Bootstrap Blazor 是一套企业级 UI 组件库,适配移动端支持各种主流浏览器,已经在多个交付项目中使用。通过本套组件可以大大缩短开发周期,节约开发成本。目前已经开发、封装了 70 多个组件。

  • Gitee 开源地址为:https://gitee.com/LongbowEnterprise/BootstrapBlazor

  • Github 开源地址为:https://github.com/ArgoZhang/BootstrapBlazor

  • 在线演示网站:https://www.blazor.zone

Table 应该是做管理型网站开发的核心组件了,通过 Table 可以衍生出非常多的功能,由于这套组件几乎没有宣传,导致知道的人不是很多,但是很多小伙伴都是使用了其他一些开源 blazor 项目后发现 Table 组件根本无法使用。

  • 加载数据太卡
  • 功能缺失太多

那么从今天开始正式介绍一下性能爆炸,操作简单的 BootstrapBlazor 组件库中的最强王者组件 Table,由于功能实在是太多,仅示例目前网站中就有近 60 个各种实战中需要的功能,再接下来的时间里我们一一介绍

自动生成列功能

使用 Table 组件时大多数组件都是要求用户输入显示那些列,这样会在 razor 文件中增加大量列相关信息,如下所示






如果一个实体类属性太多时。这里书写起来就会篇幅非常长,BootstrapBlazor 组件库的 Table 组件有一个属性 AutoGenerateColumns ,当设置其值为 true 时,会根据绑定模型的属性进行自动生成列信息,为开发人员节约了大量的代码,先看示例

迦恩计算机资源网源码(图书销售类)
迦恩计算机资源网源码(图书销售类)

采用三层架构开发,前台集成了产品在线展示,用户注册、在线调查、在线投稿后台有类别管理\图书管理\订单管理\会员管理\配送范围管理\邮件列表\广告管理\友情链接管理等后台添加图书时自动生成缩略图和文字水印主要参考了petshop的设计架构、使用了Asp.net2.0中很多MemberShip、master等新功能后台管理地址/web/admin/ 超级管理员账号密码均为aspx1特别提示:该系统需要

下载

怎么样?通过这一行代码就完成了表格的全自动生成,并且提供了增、删、改、查、过滤、排序等等全部功能。效果图如下

是不是有一些心动,这么少的代码居然可以实现这么多功能?没错!用 BootstrapBlazor 组件库的 Table 组件开发就是这么简单。

划重点

使用 Table 组件 UI 层面的基本操作均已经封装到组件功能中,开发人员只需要将精力转移到数据库的操作上去,如例子中的

  • OnQueryAsync 数据查询方法
  • OnSaveAsync 数据保存方法(内部自动判断主键执行插入或者更新操作)
  • OnDeleteAsync 数据删除方法 (可自行进行真实删除或者标记删除操作)
  • OnResetSearchAsync 重置搜索方法

实现原理

Table 组件为泛型组件,通过 TItem 设定绑定模型类型为 BindItem 实体类,在这个实体类中通过 AutoGenerateColumnAttribute 标签对自动生成列规则进行设置,具体参数如下:

[AttributeUsage(AttributeTargets.Property)]
public class AutoGenerateColumnAttribute : Attribute, ITableColumn
{
    /// 
    /// 获得/设置 显示顺序
    /// 
    public int Order { get; set; }

    /// 
    /// 获得/设置 是否忽略 默认为 false 不忽略
    /// 
    public bool Ignore { get; set; }

    /// 
    /// 获得/设置 当前列是否可编辑 默认为 true 当设置为 false 时自动生成编辑 UI 不生成此列
    /// 
    public bool Editable { get; set; } = true;

    /// 
    /// 获得/设置 当前列编辑时是否只读 默认为 false
    /// 
    public bool Readonly { get; set; }

    /// 
    /// 获得/设置 是否允许排序 默认为 false
    /// 
    public bool Sortable { get; set; }

    /// 
    /// 获得/设置 是否为默认排序列 默认为 false
    /// 
    public bool DefaultSort { get; set; }

    /// 
    /// 获得/设置 是否为默认排序规则 默认为 SortOrder.Unset
    /// 
    public SortOrder DefaultSortOrder { get; set; }

    /// 
    /// 获得/设置 是否允许过滤数据 默认为 false
    /// 
    public bool Filterable { get; set; }

    /// 
    /// 获得/设置 是否参与搜索 默认为 false
    /// 
    public bool Searchable { get; set; }

    /// 
    /// 获得/设置 列宽
    /// 
    public int? Width { get; set; }

    /// 
    /// 获得/设置 是否固定本列 默认 false 不固定
    /// 
    public bool Fixed { get; set; }

    /// 
    /// 获得/设置 列是否显示 默认为 true 可见的
    /// 
    public bool Visible { get; set; } = true;

    /// 
    /// 获得/设置 本列是否允许换行 默认为 false
    /// 
    public bool AllowTextWrap { get; set; }

    /// 
    /// 获得/设置 本列文本超出省略 默认为 false
    /// 
    public bool TextEllipsis { get; set; }

    /// 
    /// 获得/设置 列 td 自定义样式 默认为 null 未设置
    /// 
    public string? CssClass { get; set; }

    /// 
    /// 获得/设置 显示节点阈值 默认值 BreakPoint.None 未设置
    /// 
    public BreakPoint ShownWithBreakPoint { get; set; }

    /// 
    /// 获得/设置 格式化字符串 如时间类型设置 yyyy-MM-dd
    /// 
    public string? FormatString { get; set; }

    /// 
    /// 获得/设置 文字对齐方式 默认为 Alignment.None
    /// 
    public Alignment Align { get; set; }

    /// 
    /// 获得/设置 字段鼠标悬停提示
    /// 
    public bool ShowTips { get; set; }

    /// 
    /// 获得/设置 列格式化回调委托
    /// 
    public Func>? Formatter { get; set; }

    /// 
    /// 获得/设置 编辑模板
    /// 
    public RenderFragment? EditTemplate { get; set; }

    /// 
    /// 获得/设置 显示模板
    /// 
    public RenderFragment? Template { get; set; }

    /// 
    /// 获得/设置 搜索模板
    /// 
    public RenderFragment? SearchTemplate { get; set; }

    /// 
    /// 获得/设置 过滤模板
    /// 
    public RenderFragment? FilterTemplate { get; set; }

    /// 
    /// 获得/设置 列头显示文字未设置时显示字段名称
    /// 
    public string? Text { get; set; }
}

这里有大量可以限定的参数基本看注释就知道啦。更多 文档请查看在线演示文档 https://www.blazor.zone/tables/column

更多关于bootstrap的相关知识,可访问:bootstrap教程!!

相关专题

更多
数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

352

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2075

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

347

2023.08.31

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

255

2023.09.05

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

324

2023.10.09

数据库对象名无效怎么解决
数据库对象名无效怎么解决

数据库对象名无效解决办法:1、检查使用的对象名是否正确,确保没有拼写错误;2、检查数据库中是否已存在具有相同名称的对象,如果是,请更改对象名为一个不同的名称,然后重新创建;3、确保在连接数据库时使用了正确的用户名、密码和数据库名称;4、尝试重启数据库服务,然后再次尝试创建或使用对象;5、尝试更新驱动程序,然后再次尝试创建或使用对象。

410

2023.10.16

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

401

2023.10.16

vb连接数据库的方法
vb连接数据库的方法

vb连接数据库的方法有使用ADO对象库、使用OLEDB数据提供程序、使用ODBC数据源等。详细介绍:1、使用ADO对象库方法,ADO是一种用于访问数据库的COM组件,可以通过ADO连接数据库并执行SQL语句。可以使用ADODB.Connection对象来建立与数据库的连接,然后使用ADODB.Recordset对象来执行查询和操作数据;2、使用OLEDB数据提供程序方法等等。

221

2023.10.19

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

19

2026.01.20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 3.3万人学习

React 教程
React 教程

共58课时 | 3.9万人学习

Bootstrap4.x---十天精品课堂
Bootstrap4.x---十天精品课堂

共22课时 | 1.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号