Bootstrap Blazor 组件介绍 Table(一)
liuian 2024-12-11 15:44 54 浏览
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 文件中增加大量列相关信息,如下所示
<TableColumn @bind-Field="@context.DateTime" Width="180" />
<TableColumn @bind-Field="@context.Name" />
<TableColumn @bind-Field="@context.Address" />
<TableColumn @bind-Field="@context.Education" />
<TableColumn @bind-Field="@context.Count" />
<TableColumn @bind-Field="@context.Complete">
如果一个实体类属性太多时。这里书写起来就会篇幅非常长,BootstrapBlazor 组件库的 Table 组件有一个属性 AutoGenerateColumns ,当设置其值为 true 时,会根据绑定模型的属性进行自动生成列信息,为开发人员节约了大量的代码,先看示例
<Table TItem="BindItem" IsStriped="true" IsBordered="true" IsMultipleSelect="true"
ShowToolbar="true" ShowExtendButtons="true" AutoGenerateColumns="true"
OnQueryAsync="@OnEditQueryAsync" OnResetSearchAsync="@OnResetSearchAsync"
OnSaveAsync="@OnSaveAsync" OnDeleteAsync="@OnDeleteAsync">
</Table>
怎么样?通过这一行代码就完成了表格的全自动生成,并且提供了增、删、改、查、过滤、排序等等全部功能。效果图如下
是不是有一些心动,这么少的代码居然可以实现这么多功能?没错!用 BootstrapBlazor 组件库的 Table 组件开发就是这么简单。
划重点
使用 Table 组件 UI 层面的基本操作均已经封装到组件功能中,开发人员只需要将精力转移到数据库的操作上去,如例子中的
- OnQueryAsync 数据查询方法
- OnSaveAsync 数据保存方法(内部自动判断主键执行插入或者更新操作)
- OnDeleteAsync 数据删除方法 (可自行进行真实删除或者标记删除操作)
- OnResetSearchAsync 重置搜索方法
实现原理
Table 组件为泛型组件,通过 TItem 设定绑定模型类型为 BindItem 实体类,在这个实体类中通过 AutoGenerateColumnAttribute 标签对自动生成列规则进行设置,具体参数如下:
[AttributeUsage(AttributeTargets.Property)]
public class AutoGenerateColumnAttribute : Attribute, ITableColumn
{
/// <summary>
/// 获得/设置 显示顺序
/// </summary>
public int Order { get; set; }
/// <summary>
/// 获得/设置 是否忽略 默认为 false 不忽略
/// </summary>
public bool Ignore { get; set; }
/// <summary>
/// 获得/设置 当前列是否可编辑 默认为 true 当设置为 false 时自动生成编辑 UI 不生成此列
/// </summary>
public bool Editable { get; set; } = true;
/// <summary>
/// 获得/设置 当前列编辑时是否只读 默认为 false
/// </summary>
public bool Readonly { get; set; }
/// <summary>
/// 获得/设置 是否允许排序 默认为 false
/// </summary>
public bool Sortable { get; set; }
/// <summary>
/// 获得/设置 是否为默认排序列 默认为 false
/// </summary>
public bool DefaultSort { get; set; }
/// <summary>
/// 获得/设置 是否为默认排序规则 默认为 SortOrder.Unset
/// </summary>
public SortOrder DefaultSortOrder { get; set; }
/// <summary>
/// 获得/设置 是否允许过滤数据 默认为 false
/// </summary>
public bool Filterable { get; set; }
/// <summary>
/// 获得/设置 是否参与搜索 默认为 false
/// </summary>
public bool Searchable { get; set; }
/// <summary>
/// 获得/设置 列宽
/// </summary>
public int? Width { get; set; }
/// <summary>
/// 获得/设置 是否固定本列 默认 false 不固定
/// </summary>
public bool Fixed { get; set; }
/// <summary>
/// 获得/设置 列是否显示 默认为 true 可见的
/// </summary>
public bool Visible { get; set; } = true;
/// <summary>
/// 获得/设置 本列是否允许换行 默认为 false
/// </summary>
public bool AllowTextWrap { get; set; }
/// <summary>
/// 获得/设置 本列文本超出省略 默认为 false
/// </summary>
public bool TextEllipsis { get; set; }
/// <summary>
/// 获得/设置 列 td 自定义样式 默认为 null 未设置
/// </summary>
public string? CssClass { get; set; }
/// <summary>
/// 获得/设置 显示节点阈值 默认值 BreakPoint.None 未设置
/// </summary>
public BreakPoint ShownWithBreakPoint { get; set; }
/// <summary>
/// 获得/设置 格式化字符串 如时间类型设置 yyyy-MM-dd
/// </summary>
public string? FormatString { get; set; }
/// <summary>
/// 获得/设置 文字对齐方式 默认为 Alignment.None
/// </summary>
public Alignment Align { get; set; }
/// <summary>
/// 获得/设置 字段鼠标悬停提示
/// </summary>
public bool ShowTips { get; set; }
/// <summary>
/// 获得/设置 列格式化回调委托
/// </summary>
public Func<object?, Task<string>>? Formatter { get; set; }
/// <summary>
/// 获得/设置 编辑模板
/// </summary>
public RenderFragment<object>? EditTemplate { get; set; }
/// <summary>
/// 获得/设置 显示模板
/// </summary>
public RenderFragment<object>? Template { get; set; }
/// <summary>
/// 获得/设置 搜索模板
/// </summary>
public RenderFragment<object>? SearchTemplate { get; set; }
/// <summary>
/// 获得/设置 过滤模板
/// </summary>
public RenderFragment? FilterTemplate { get; set; }
/// <summary>
/// 获得/设置 列头显示文字未设置时显示字段名称
/// </summary>
public string? Text { get; set; }
}
这里有大量可以限定的参数基本看注释就知道啦。更多 文档请查看在线演示文档 https://www.blazor.zone/tables/column
转自 https://www.cnblogs.com/argozhang/p/14067391.html
喜欢的朋友点一下关注 点关注不迷路
相关推荐
- office2013破解版下载安装包
-
1、OfficeProPlus2013VOL版 密钥: 8NT4X-GQMCK-66PYK-MHKKR-MWPDH ND9QV-R6QV9-KWYYX-Q4X28-DGKKV X3X...
- 2265安卓网(2265安卓网roblox)
-
在华为手机上,要修改陌陌(Momo)城市位置,您可以尝试以下方法:1.打开陌陌应用:在手机主屏幕上找到并点击陌陌应用图标,以启动陌陌应用。1.进入个人资料设置:在陌陌应用中,找到并点击个人资料按钮...
- 桌面启动命令(电脑桌面启动项命令)
-
方法一打开C:\Windows\System32目录,找到cmd.exe,单击选中后右键,菜单中选择“以管理员身份运行”。方法二1、点开开始菜单,在搜索框中输入“cmd”,在搜索结果中,对着命令...
- miui下载miui官网手机版(小米miui下载官网手机版)
-
1.打开手机浏览器,输入miui官网地址。2.点击下载页面,选择你手机的型号。3.点击下载,下载完成后双击安装。4.安装完成后,重新启动手机。小米官网下载地址是:http://www.mi.com/s...
- win10任务管理器被禁用怎么解除
-
1.首先,检查是否有管理员权限,只有管理员有权限禁用任务管理器;2.查看任务管理器是否被禁用,可以在注册表中查看,路径为"HKEY_CURRENT_USER\Software\Micros...
- flash player有必要安装吗(flash播放器有必要安装吗)
-
现代的电脑不再需要安装AdobeFlashPlayer,因为许多主流浏览器已经停止对Flash的支持。FlashPlayer是用于播放动画、视频和音频等多媒体内容的插件,但由于安全性问题和技术发...
- cmlink欧洲(欧洲联通)
-
cmlink是一种用于创建和管理内容链接的工具。它可以帮助用户将不同的内容链接在一起,形成一个完整的内容体系,方便用户查看和使用。cmlink可以将多个不同的内容链接整合在一起,形成一个自定义的内容库...
- window7截图快捷键(winds7截图快捷键)
-
win7的截图快捷键如下:1、按Prtsc键截图 这样获取的是整个电脑屏幕的内容,按Prtsc键后,可以直接打开画图工具,接粘贴使用。也可以粘贴在QQ聊天框或者Word文档中,之后再选择保存即可...
-
- 万能网卡驱动下载离线版(万能网卡驱动离线版pc win10)
-
使用驱动精灵在没有网络的情况下安装驱动,需要安装驱动精灵万能网卡版。安装驱动精灵万能网卡版步骤如下所示:1、点击搜索结果词条,进入驱动精灵官网。2、在驱动精灵官网,选择驱动精灵万能网卡版,点击下载。3、下载完成后,点击安装驱动精灵万能网卡版...
-
2025-12-20 16:05 liuian
- win10 1803版本(window10版本1803)
-
Windows10version1803版本,也就是“April2018Update”。Win101803正式版版本号为Build17134,资料显示,Build17134即Vers...
- 资源管理器停止黑屏怎么恢复
-
作为临时对策,重启“explorer.exe”即可,步骤如下:ctrl+alt+delete,调出任务管理器;选择“进程”,找到“explorer.exe”,结束进程;选择“文件”,之后新建“expl...
- win10企业版激活密钥大全(windows10企业版激活密钥在哪)
-
详细版本号:点击开始——设置——系统——关于。查看密钥:右键点击开始——运行,输入regedit确定。打开注册表编辑器。依次打开:HKEY_LOCAL_MACHINE/SOFTWARE/Micro...
- 路由器基本设置(路由器基本设置方法)
-
如何设置路由器?设置路由器并不是很复杂的事情,并且需要设置地方也很少,一般保持默认即可;并且在设置方式上,也不一定使用电脑设置,任何移动终端接入路由器都可以完成设置。一起来看看,究竟该如何设置路由器吧...
- 迅雷破解版安卓(迅雷破解版安卓版6.0)
-
去其他电影网站下载屏蔽的那些网站比较正规,现在越来越注重版权了虽然迅雷5.0和皮皮播放器,PPlive中可以修改SP3最大连接数,但是只能对其软件本身有效,而无法对系统和其他软件的最大连接数进行修改...
- win7简约主题(windows7主题)
-
要设置小米手机的全局主题为简约风格,首先进入手机的主题设置界面,选择简约风格的主题并进行下载和安装。接着在桌面设置中调整图标样式、字体和壁纸等元素为简约风格。还可以在系统设置中调整通知栏、锁屏和系统界...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
