Jx.Cms开发笔记(四)-改造Card组件
在Blazor 组件库 BootstrapBlazor 中Card组件介绍中我们说过,如果我们使用了Card组件的IsCollapsible
属性设置了可伸缩的话,就只能使用Text属性来设置标题文本,不能自己定义了。
但是我们在widget组件设置的时候希望在CardHeader里放一个按钮或者一个下拉按钮,来完成一些事情,样子如下:
这里右边的添加到部分,在原始的Card中实现不了,所以我们需要改造一下。
这里我们可以在BootstrapBlazor的源码中发现,Card组件实际上是继承了CardBase.cs
,所以我们也可以简单的也继承CardBase
,把Card.razor
的代码复制到我们WidgetCard
中。
现在来看代码:
@inherits CardBase
<div @attributes="@AdditionalAttributes" class="@ClassName">
@if (CardHeader != null || !string.IsNullOrEmpty(HeaderText))
{
<div class="card-header">
<div style="display: flex;align-items: center">
<div class="card-collapse is-open" @ref="CardEelement">
<i class="card-collapse-arrow fa fa-chevron-circle-right"></i>
<div class="card-title">@HeaderText</div>
</div>
@CardHeader
</div>
</div>
}
<div class="@BodyClassName">
@CardBody
</div>
@if (CardFooter != null)
{
<div class="@FooterClassName">
@CardFooter
</div>
}
</div>
@code
{
protected override void OnInitialized()
{
base.OnInitialized();
IsCollapsible = true;
}
}
这里我们在OnInitialized
中将IsCollapsible
直接设置为true
,因为我们默认的widget全部都是可伸缩的,这样我们就可以在使用时少些一点东西。
关键部分是去掉了CardHeader
部分的判断,在原始的Card中有一个判断是
@if (IsCollapsible)
{
<div class="card-collapse is-open" @ref="CardEelement">
<i class="card-collapse-arrow fa fa-chevron-circle-right"></i>
<div class="ms-2">@HeaderText</div>
</div>
}
我们这里直接删掉这个判断,让它不论如何,都渲染CardHeader
就可以了
Jx.Cms开发笔记(四)-改造Card组件的更多相关文章
- Jx.Cms开发笔记(六)-重写Compiler
我们在Jx.Cms开发笔记(三)-Views主题动态切换中说了如何切换主题.但是这里有一个问题,就是主题切换时,会报错 这是由于asp.net core在处理Views的信息的时候是在构造函数中处理的 ...
- Jx.Cms开发笔记(一)-Jx.Cms介绍
开始 从今天开始,我们将开启Jx.Cms系列开发教程. 我们将会使用Jx.Cms来介绍Blazor的开发.MVC的开发,热插拔插件的开发等等一系列开发教程. 介绍 Jx.Cms是一个使用最新版.NET ...
- Jx.Cms开发笔记(二)-系统登录
界面 此界面完全抄了BootstrapAdmin css隔离 由于登录页面的css与其他页面没有什么关系,所以为了防止其他界面的css被污染,我们需要使用css隔离. css隔离需要在_Host.cs ...
- Jx.Cms开发笔记(五)-文章编辑页面标签设计
标签页的样子 设计思路 与其他输入框一样,存在一个Label标签,由于这里不像其他输入框一样可以直接使用Row标签,所以这里需要额外增加. 使用Tag组件显示所有的标签,我们在Blazor 组件库 B ...
- Django开发笔记四
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.邮箱激活 users app下,models.py: ...
- [开发笔记]-“在引用COM组件时,出现了无法嵌入互操作类型。。。”的错误
这两天在做一个需要将wps文档转换成word文档的程序,在调用wps的com组件时项目编译是没有问题的,但当运行的时候却弹出了下面的错误提示: 从网上百度一番后,找到了正确的解决方法. 先从Com组件 ...
- 【django】CMS开发笔记一:虚拟环境配置
项目代码:https://github.com/pusidun/CMS-django 使用虚拟环境 虚拟环境是Python解释器的虚拟副本.在虚拟环境中安装私有包,不会影响全局的Python解释器.可 ...
- cms开发笔记2
1 创建数据库表 //配置文件CREATE TABLE IF NOT EXISTS `mc_config` ( `en_name` varchar(80) NOT NULL, `ch_name` va ...
- Django开发笔记六
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...
随机推荐
- FPGA驱动LCD显示红绿蓝彩条
实验目的:先简单熟悉LCD灯的驱动和时序图的代码实现.设计功能是让LCD显示红绿蓝三种颜色,即三个彩带.本次实验比较容易实现,主要是对LCD驱动时序图的理解和时序参数的配置. 实验条件:1.LCD原理 ...
- Servlet的response乱码问题
一.response有两种输出流(编码:UTF-8): 1.字节流:response.getOutputStream().write(date.getBytes("UTF-8")) ...
- java concurrent 并发多线程
Concurrent 包结构 ■ Concurrent 包整体类图 ■ Concurrent包实现机制 综述: 在整个并发包设计上,Doug Lea大师采用了3.1 Concurrent包整体架构的三 ...
- Java中带参数的方法和JavaScript中带参数的函数有什么不同?
javascript是动态语言,是弱类型语言,其参数的使用很灵活:java则是强类型语言,参数的类型必须明确的
- Redis 集群如何选择数据库?
Redis 集群目前无法做数据库选择,默认在 0 数据库.
- hadoop 分布式系统与Hadoop MapReduce
Hadoop分为两部分 Hadoop MapReduce和Hadoop分布式文件系统 1分布式系统由Master Node 和多台 slave Node组成. 1.1MasterNode Master ...
- Numpy实现SVD矩阵分解
1. 引入包 2. 实现矩阵分解 3. 从分量还原矩阵
- canvas写个简单的小游戏
之前在HTML5 Canvas属性和方法汇总一文中,介绍过Canvas的各种属性以及方法的说明,并列举了自己写的一些Canvas demo,接下来开始写一个简单的小游戏吧,有多简单,这么说吧,代码不到 ...
- VueJs单页应用实现微信网页授权及微信分享功能
在实际开发中,无论是做PC端.WebApp端还是微信公众号等类型的项目的时候,或多或少都会涉及到微信相关的开发,最近公司项目要求实现微信网页授权,并获取微信用户基本信息的功能及微信分享的功能,现在总算 ...
- Py的A+B
程序会读入两行,每行都是一个数字,输出这两个数字的和 输入格式: 两行文字,每行都是一个数字 输出格式: 一行数字 输入样例: 18 21 输出样例: 39 代码: a = input() b = i ...