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组件的更多相关文章

  1. Jx.Cms开发笔记(六)-重写Compiler

    我们在Jx.Cms开发笔记(三)-Views主题动态切换中说了如何切换主题.但是这里有一个问题,就是主题切换时,会报错 这是由于asp.net core在处理Views的信息的时候是在构造函数中处理的 ...

  2. Jx.Cms开发笔记(一)-Jx.Cms介绍

    开始 从今天开始,我们将开启Jx.Cms系列开发教程. 我们将会使用Jx.Cms来介绍Blazor的开发.MVC的开发,热插拔插件的开发等等一系列开发教程. 介绍 Jx.Cms是一个使用最新版.NET ...

  3. Jx.Cms开发笔记(二)-系统登录

    界面 此界面完全抄了BootstrapAdmin css隔离 由于登录页面的css与其他页面没有什么关系,所以为了防止其他界面的css被污染,我们需要使用css隔离. css隔离需要在_Host.cs ...

  4. Jx.Cms开发笔记(五)-文章编辑页面标签设计

    标签页的样子 设计思路 与其他输入框一样,存在一个Label标签,由于这里不像其他输入框一样可以直接使用Row标签,所以这里需要额外增加. 使用Tag组件显示所有的标签,我们在Blazor 组件库 B ...

  5. Django开发笔记四

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.邮箱激活 users app下,models.py: ...

  6. [开发笔记]-“在引用COM组件时,出现了无法嵌入互操作类型。。。”的错误

    这两天在做一个需要将wps文档转换成word文档的程序,在调用wps的com组件时项目编译是没有问题的,但当运行的时候却弹出了下面的错误提示: 从网上百度一番后,找到了正确的解决方法. 先从Com组件 ...

  7. 【django】CMS开发笔记一:虚拟环境配置

    项目代码:https://github.com/pusidun/CMS-django 使用虚拟环境 虚拟环境是Python解释器的虚拟副本.在虚拟环境中安装私有包,不会影响全局的Python解释器.可 ...

  8. cms开发笔记2

    1 创建数据库表 //配置文件CREATE TABLE IF NOT EXISTS `mc_config` ( `en_name` varchar(80) NOT NULL, `ch_name` va ...

  9. Django开发笔记六

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...

随机推荐

  1. python练习册 每天一个小程序 第0009题

    1 ''' 2 题目描述: 3 找出一个html文件中所有的url 4 5 思路 : 6 利用正则表达式进行匹配 7 8 ''' 9 10 11 import re 12 13 14 with ope ...

  2. [bzoj3809]Gty的二逼妹子序列/[bzoj3236][Ahoi2013]作业

    [bzoj3809]Gty的二逼妹子序列/[bzoj3236][Ahoi2013]作业 bzoj   bzoj 题目大意:一个序列,m个询问在$[l,r]$区间的$[x,y]$范围内的数的个数/种类. ...

  3. select 中的timeout

    1. select 相关man 资料 /* According to POSIX.1-2001 */ #include <sys/select.h> /* According to ear ...

  4. BUU findkey

    定位关键函数 跟入flag找到问题位置 两行一样的代码,nop掉第二行,按p生成函数 代码审计 int __userpurge sub_4018C4@<eax>(int a1@<eb ...

  5. Elman network with additional notes

    // Author: John McCullock // Date: 10-15-05 // Description: Elman Network Example 1. //http://www.mn ...

  6. Dubbo 如何优雅停机?

    Dubbo 是通过 JDK 的 ShutdownHook 来完成优雅停机的,所以如果使用 kill -9 PID 等强制关闭指令,是不会执行优雅停机的,只有通过 kill PID 时,才 会执行.

  7. Log4j使用(转)

    from:http://www.cnblogs.com/ITtangtang/p/3926665.html 一.Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders ...

  8. Java 中是如何支持正则表达式操作的?

    Java 中的 String 类提供了支持正则表达式操作的方法,包括:matches(). replaceAll().replaceFirst().split().此外,Java 中可以用 Patte ...

  9. java使用正则表达式在文档里找匹配

    public static void main(String[] args) { String str = "123我是456张三789的学生"; String regex2 = ...

  10. memcacuery cache 相比,有什么优缺点?

    把 memcached 引入应用中,还是需要不少工作量的.MySQL 有个使用方便的 query cache,可以自动地缓存 SQL 查询的结果,被缓存的 SQL 查询可以被反复 地快速执行.Memc ...