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

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

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

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

前言

Table(表格)组件应该是做管理型网站开发的核心组件了,通过 Table 可以衍生出非常多的功能,上一章节对 Table自定义模板列进行了介绍,本章详细介绍 Table 组件列的其他属性以及用法。

列数据格式

在实际开发中有时候数据库存储的是时间,而现实的时候为了美化需要显示为年月日,在 BootstrapBlazor 组件中自定义类模板功能非常简单,代码如下:

<TableColumn @bind-Field="@context.DateTime" Width="180" FormatString="yyyy-MM-dd" />

小技巧

通过设置 Width 宽度与 FormatString 来设置格式与宽度,达到完美效果

上例中是时间类型的字段,那要是其他类型的如何处理呢?

BootstrapBlazor 组件额外提供了一个回调委托 Formatter 函数,如下例中利用这个回调委托函数将数字类型的属性格式化为带两位小数点格式

<TableColumn @bind-Field="@context.Count" Formatter="@IntFormatter" />

@code {
protected Task<string> IntFormatter(object? d)
{
var data = (int?)d;
return Task.FromResult(data?.ToString("0.00") ?? "");
}
}

是不是非常简单?效果图如下:

列数据对齐方式

列绑定时通过指定 Align 属性设置对齐方式,代码如下:

<TableColumn @bind-Field="@context.DateTime" Width="120" FormatString="yyyy-MM-dd" Align="Alignment.Center" />

搞定!!!效果图如下:

根据屏幕宽度自适应显示/隐藏列

想不想有一种 Table iPad 看的时候显示 6 列,电脑看的时候显示 10 列?是不是很神奇的需求?没问题,BootstrapBlazor 的王者组件 Table 满足您的变态需求,我们来看看代码

<TableColumn @bind-Field="@context.Count" ShownWithBreakPoint="BreakPoint.Large" Width="60" />

眼见的小伙伴一下子就看到了一个属性 ShownWithBreakPoint 这个属性是一个枚举类型的

  • None 未设置均显示
  • Small 屏幕大于等于 576px 时显示
  • Medium 屏幕大于等于 768px 时显示
  • Large 屏幕大于等于 992px 时显示
  • ExtraLarge 屏幕大于等于 1200px 时显示

通过这个简单的属性是不是实现您的变态需求呢?就是这么简单!!!

特别注意

由于 BootstrapBlazorTable 组件已经自动侦测了移动端,在移动端设备上使用 Table 组件时默认是无法获得行列这种呈现方式的,需要显式设置渲染模式为 Table RenderModel="TableRenderModel.Table"

自定义显示/隐藏列

攻城狮又开始抱怨表格中列太多了,怎么显示都不好看。BootstrapBlazor 自定义显示列功能拯救你,比如一共 10 列,但是主要的可能有 6 列默认显示出来,其余四列做到控制按钮中,供使用者自行调出来,岂不美哉!

<TableColumn @bind-Field="@context.Count" Visible="false" />

什么?就一个 Visible="false" 就搞定了?是的,就是这样的简单,通过设置 Table 组件的 ShowColumnList="true" 使表格工具栏中出现列控制按钮就搞定啦。真的是灰常的简单。

列拖动

列太窄了,能不能我自己拖动列宽啊?能!!!BootstrapBlazor 的王者组件 Table 肯定能啊,怎么设置呢?

<Table TItem="BindItem"
IsPagination="true" PageItemsSource="@PageItemsSource" AllowResizing="true"
IsStriped="true" IsBordered="true"
ShowToolbar="false" IsMultipleSelect="true" ShowExtendButtons="false"
OnQueryAsync="@OnQueryAsync">
<TableColumns>
<TableColumn @bind-Field="@context.DateTime" Width="120" FormatString="yyyy-MM-dd" />
<TableColumn @bind-Field="@context.Name" Width="100" />
</TableColumns>
</Table>

通过设置 AllowResizing="true" 就搞定啦

额外收获

某列数据太多啦,折行也不好,能不能自动截取啊?拖动时自动展现更多的数据呢?请看效果如下

是不是非常的心动,如果做到这个效果呢?复杂吗?非常的简单,只需要设置 AllowResizing="true" 的同时,在地址列上设置 TextEllipsis 就搞定啦,ShowTips="true" 设置鼠标悬浮时显示全部数据,是不是非常的贴心 ,请查看代码如下

<Table TItem="BindItem" IsBordered="true" IsStriped="true" Items="@CellItems" AllowResizing="true">
<TableColumns>
<TableColumn @bind-Field="@context.DateTime" Width="180" Text="时间" />
<TableColumn @bind-Field="@context.Name" Text="姓名" />
<TableColumn @bind-Field="@context.Address" Text="地址" Width="200" TextEllipsis="true" />
<TableColumn @bind-Field="@context.Education" />
<TableColumn @bind-Field="@context.Count" />
<TableColumn @bind-Field="@context.Complete">
<Template Context="v">
<Switch IsDisabled="true" Value="v.Value" ShowInnerText="true" OnInnerText="是" OffInnerText="否" />
</Template>
</TableColumn>
</TableColumns>
</Table>

有兴趣学习 Blazor 的请加 QQ 群 795206915

更多列相关技巧请查看 BootstrapBlaozr 演示,下一篇讲解列数据格式介绍

Bootstrap Blazor 组件介绍 Table (三)列数据格式功能介绍的更多相关文章

  1. Bootstrap Blazor 组件库 Row 布局组件(栅格系统)

    原文链接:https://www.cnblogs.com/ysmc/p/16133351.html 在 Bootstrap 中,栅格相信大家都很熟悉,简直就是布局神器啊,Bootstrap Blazo ...

  2. Blazor组件自做三 : 使用JS隔离封装ZXing扫码

    Blazor组件自做三 : 使用JS隔离封装ZXing扫码 本文基础步骤参考前两篇文章 Blazor组件自做一 : 使用JS隔离封装viewerjs库 Blazor组件自做二 : 使用JS隔离制作手写 ...

  3. 服务注册发现consul之一:consul介绍、安装、及功能介绍

    Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go 语言开发.它具有很多优点.包括:基于 raft 协议,比较简洁: 支持健康检查, 同时支持 HTTP 和 ...

  4. Bootstrap Blazor 组件介绍 Table (二)自定义模板列功能介绍

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

  5. Bootstrap Blazor 组件介绍 Table (一)自动生成列功能介绍

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

  6. Bootstrap Blazor 组件库

    项目介绍 Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScript 来创建丰富的交互式 UI. 共享使用 .NET 编写的服务器端和客户端应 ...

  7. 测试工具Fiddler(三)—— 常见功能介绍

    Fiddler的功能面板 1.statistics:请求的性能指标:全世界范围的性能测试: RTP:一个请求的从发送出去到返回的时间: Show chart可以看出图表的示例: 2.inspector ...

  8. element ui select组件和table做分页完整功能和二级联动效果

    <template> <div class="index_box"> <div class="search_box"> &l ...

  9. Bootstrap Blazor Table 组件(三)智能生成

    原文链接:https://www.cnblogs.com/ysmc/p/16201153.html Bootstrap Blazor 官网地址:https://www.blazor.zone 有了解过 ...

随机推荐

  1. 300万运算/秒 :VoltDB在电信行业基准测试上可线性扩展性能

    01 总 体 概 述 VoltDB受到全球电信软件解决方案提供商的信赖,后者将其作为首选内存数据库来驱动他们部署在全球100多家运营商处的任务关键型应用.VoltDB受到青睐的原因在于其性能和功能不仅 ...

  2. 【持续更新】Tomcat低级错误

    0(模板) 所犯错误: 现象: 报错内容: 1 所犯错误: 声明@Webservlet中未加"/"符号: 现象: 能够Connected to server,但是代码报错,且无法顺 ...

  3. [LuoguP1005]矩阵取数游戏 (DP+高精度)

    题面 传送门:https://www.luogu.org/problemnew/show/P1005 Solution 我们可以先考虑贪心 我们每一次都选左右两边尽可能小的数,方便大的放在后面 听起来 ...

  4. 【SpringBoot】08.SpringBoot整合jsp

    SpringBoot整合jsp 1.修改pom文件加入两个坐标jstl标签库和jasper <project xmlns="http://maven.apache.org/POM/4. ...

  5. 部署Dotnet Core应用到Kubernetes(一)

    最近闲了点,写个大活:部署Dotnet应用到K8s.   写在前边的话 一直想完成这个主题.但这个主题实在太大了,各种拖延症的小宇宙不时爆发一下,结果就拖到了现在.   这个主题,会是一个系列.在这个 ...

  6. 你的旧版本 App 为何运行在 iPhone 12 上没有异常?

    背景 当我在 10月14日 iPhone 12 系列发布直播,看到 iPhone 12 系列的分辨率后,我注意到这些分辨率是全新的时,我立即在群里吐槽:又需要适配一波了.我只是以为宽高变化会导致字号变 ...

  7. FreeSql接入CAP的实践

    CAP CAP 是一个基于 .NET Standard 的 C# 库,它是一种处理分布式事务的解决方案,同样具有 EventBus 的功能,它具有轻量级.易使用.高性能等特点. https://git ...

  8. linux常用配置文件和命令总结

    常用配置文件说明: 1..设置-n永远生效:Vim的配置文件:命令模式想永久生效, ~/.vimrc,新建文件,在里面输入保存即可 2.设置别名永远生效:在~/.bashrc  修改当前用户家目录里的 ...

  9. 压缩css与js

    使用yuicompressor 进行css和js的压缩 #! /bin/sh yasuocss="java -jar /root/yuicompressor-2.4.8.jar --type ...

  10. 设计模式(一)--工厂模式(Go实现)

    package Factory import "fmt" type Restaurant interface { GetFood() } type Donglaishun stru ...