AntDesignBlazor 学习笔记
AntDesignBlazor是基于 Ant Design 的 Blazor 实现,开发和服务于企业级后台产品。我的 Blazor Server 学习就从这里开始,有问题可以随时上 Blazor 中文社区 寻求帮助,问的问题多了,承蒙群主大人 James Yeung 看得起,居然让我帮忙完善一下文档,让我一时间诚惶诚恐,浮想联翩。
纠结再三,我决定还是先把学习过程中遇到的问题和解决方案先整理出来,如果确有价值再考虑合并到官方文档不迟。所以下面的内容,不是使用教程,也没有什么系统性,完全是解决我自己在使用过程中遇到问题的记录。
1. 使用 AntDesignBlazor,如果用 vs2019 的 Blazor 模板创建工程,建议把模板自带的 bootstrap css 移除掉,否则会遇到样式冲突的问题。
比如 Icon 组件跟文字中间对齐,设置 Style = "vertical-align:middle",只有在移除了 bootstrap css 才能显示出期望的效果来。
2. 验证码图片可以放到 Input 的后缀 Suffix 中, 从而使输入框与验证码显示为一个整体


<Input Placeholder="Verify Code" Size="@InputSize.Large" @bind-Value="@VerifyCode" MaxLength="4" OnPressEnter="(e)=>submit()" >
<Prefix>
<Icon Type="key" />
</Prefix>
<Suffix>
<img src="@imgVerifyCode" @onclick="()=>refreshVerifyCode()" alt="看不清,换一张" style="cursor:pointer"/>
</Suffix>
</Input>
3. Icon 组件指定尺寸可以使用 Width / Height 属性

<Icon Type="logout" Theme="outline"
Width="48" Height="48"
/>
4. MenuItem 里面的链接跳转,最开始我是通过 OnClick 去调用 nav.NavigateTo() 方法,后来又改用 <a> 标签,这两种都不能实现跳转以后菜单项的高亮,最后在文档里面找到了正确的做法 RouteLink 属性

<MenuItem Key="1" RouterLink="/" RouterMatch=NavLinkMatch.All>
<Icon Type="home" Theme="outline" />
<span>Home</span>
</MenuItem>
5. Model 对话框指定宽度,可以通过 Style 指定 Width
<Modal Title="title" Style="width: 50%" />
6. Grid 组件的 Row、Col 与 @if-else 有冲突,会导致编译失败,解决的办法是使用完全类名 <AntDesign.Row><AntDesign.Col /></AntDesign.Row>
7. Tree 组件指定高度,祭出 style 大法 style="overflow-y: auto; max-height: 80vh;"
8. Table.Column 格式化输出, 使用 Format 属性,标题对齐 HeaderStyle 属性,列对齐 Style 属性

<Table @ref="table" Bordered="true"
TItem="月结明细查询"
DataSource="@details"
Total="@total"
PageSize="15"
OnRow="onRow" >
<Column @bind-Field="@context.月份" Style="text-align:center;" HeaderStyle="font-weight:bold; text-align:center" Format="yyyy-MM"/>
<Column @bind-Field="@context.金额" Style="text-align:center;" HeaderStyle="font-weight:bold; text-align:center" Format="¥#0.00"/>
</Table>
9. Table 设置奇偶行背景色,我试过多种方式,可以通过 OnRow

@code{
private int i = 0;
Dictionary<string, object> onRow(RowData<月结明细查询> row) => new()
{
["style"] = i++ % 2==0? "background-color: aliceblue" : "background-color: white"
};
}
后来在最新的文档示例中,我找到了一个更合适的处理方法,设置 RowClassName 属性

<Table @ref="table" RowClassName="@(x =>{ i=1-i; return i==0?"evenrow":""; })"
</Table>
<style>
.evenrow
{
background-color: #fff1f0;
}
</style>
@code{
int i=0;
}
上面的代码,在分页的 PageSize 为奇数时,每次翻页后的初始行背景不固定,可以结合 OnPageIndexChange="()=> i=0" 在翻页时重置 i
另外运行发现,当Table 的分页数超过10以后,会自动出现指定每页记录数的下拉框(这个特性好像文档里没有提到)


10. Model 对话框隐藏取消按钮,我还没有找到好办法,目前是设置 CancelText="@string.Empty" 变相达到目的

AntDesignBlazor 学习笔记的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
随机推荐
- 保存数据到csv文件报错:Permission denied: './train_data.csv'
如果你此前已经输出,创建了文件,很有可能是你打开了此文件,导致写入不进去报错,关掉文件重新运行程序即可!
- 端午总结Vue3中computed和watch的使用
1使用计算属性 computed 实现按钮是否禁用 我们在有些业务场景的时候,需要将按钮禁用. 这个时候,我们需要使用(disabled)属性来实现. disabled的值是true表示禁用.fals ...
- 【工具解析】瑞士军刀bettercap2.X_解析_第二期_内网钓鱼(嗅探)工具编写
/文章作者:Kali_MG1937 CNBLOG博客:ALDYS4 QQ:3496925334/ 第一期: https://www.cnblogs.com/aldys4/p/14877783.html ...
- PTA题目集总结
PTA题目集1-3总结 一:前言 我认为题目集一的有八个题目,题量可能稍微有点多,但是题型较为简单,基本为入门题:题集二有五道题,题量适度,难度也适中:题集三虽然只有三道题,但是难度却骤然提升,前两题 ...
- Linux分区,格式化概念理解
一.分区概念: 逻辑上分成不同的存储空间. 分区类型: 主分区:最多只能有4个 扩展分区:最多只能有1个. 主分区加扩展分区最多有4个. 布恩那个写入数据,只能包含逻辑分区 逻辑分区: 主分区为什么只 ...
- 对ES6中类class以及实例对象、原型对象、原型链之间关系的详细总结
1. 类 ES6 中新增加了类的概念,可以使用 class 关键字声明一个类,之后用这个类来实例化对象.即类的用途:实例化对象. // 创建一个Person类 class Person { } // ...
- 关于XXE漏洞
XXE漏洞 0x01.xxe是什么 介绍 XXE 之前,我先来说一下普通的 XML 注入,这个的利用面比较狭窄,如果有的话应该也是逻辑漏洞 1.1xml定义 XML用于标记电子文件使其具有结构性的标记 ...
- CentOS8安装GNOME3桌面并设置开机启动图形界面
本篇文章介绍如何在CentOS8 Linux操作系统中安装GNOME3桌面环境和GDM(GNOME Display Manager)现实环境管理器. 环境 CentOS8 Minimal 安装GNOM ...
- 24、Keepalived高可用介绍
24.1.什么是keepalived: Keepalived 软件起初是专为 LVS 负载均衡软件设计的,用来管理并监控 LVS 集群系统中各个服务节点的状态,后来又加入了可以实现高可用的 VRRP ...
- idea debug无法启动 Error running 'Tomcat8': Unable to open debugger port (127.0.0.1:50168): java.net.SocketException "socket closed
在日志里显示在 event log 里的 Error running 'server_web': Address localhost:1099 is already in use 显示1099单口已被 ...