首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Blazor开发框架Known-V2.0.13

编程知识
2024年10月02日 19:17

大家好,国庆节快乐,Known又更新了一波功能。

继上个版本以来,一直在完善网站文档、KnownCMS开源项目和解决框架客户提出的一些问题。这期间客户反馈的问题主要如下:

  • 微信模板消息收不到,查其原因是网络问题,因此本版本改成后台任务发送消息
  • 无代码页面模板需要自定义
  • 无代码表单字段组件需要自定义
  • 数据库访问需要支持EFCore
  • 有些网友测试非常细致,发现了一些BUG

更新内容

  • 🔨支持手动刷新微信访问Token
  • 🔨优化启动程序错误日志
  • 😄Known.SqlSugar从项目独立出来一个新库
  • 🐛修复嵌入iFrame页面打不开问题
  • 🐛修复系统许可密钥验证面板问题
  • 🐛修复高级搜索字段显示问题
  • 🐛修复数据字典无类别新增问题
  • 🐛修复无代码模块日期查询条件控件问题
  • 🐛修复异步导入文字不显示问题
  • 😄微信模板消息发送增加后台任务记录
  • 😄自动表格页面增加自定义配置选项
  • 😄表格行支持双击事件
  • 🔨优化表格查看和编辑多次弹窗问题
  • 😄表单字段类型支持扩展的自定义组件
  • 🔨优化Database组件,支持EFCore
  • 🔨优化导入组件提示信息刷新问题
  • 🔨IDataRepository改成依赖注入

详细内容

  1. 增加了独立项目存储第三方数据库访问组件,项目地址如下

https://gitee.com/known/known-db

  1. 自定义页面配置
  • 在前端项目AppClient.cs中配置如下
public static class AppClient
{
    public static void AddSampleRazor(this IServiceCollection services)
    {
        // 配置建造自动表格页面方法委托
        UIConfig.AutoTablePage = (b, m) => b.Component<CustomTablePage>().Set(c => c.Model, m).Build();
    }
}
  • 添加自定义自动表格页面组件CustomTablePage.razor页面
@inherits BaseComponent

<div>@Model?.PageName</div>

@code {
    // 自动表格页面配置模型
    [Parameter] public TableModel<Dictionary<string, object>> Model { get; set; }
}
  1. 自定义表单字段组件
  • 当框架内置的表单字段组件InputSelect等不满足业务需求时,框架可以支持在项目中自定义
  • 在【模块管理-表单配置】中,字段类型选择Custom时,可以选择项目中自定义的字段组件
  • 如何在这里能选择自己扩展的自定义字段组件,只要组件继承ICustomField接口即可,示例如下
// CustomField是框架默认抽象自定义组件基类,可以换成项目中任何组件
// ICustomField必须要继承,否则在线表单中不会显示
class MyField : CustomField, ICustomField
{
    protected override void BuildRender(RenderTreeBuilder builder)
    {
        // 在这里构建你的自定义组件内容,例如一个按钮
        builder.Button("自定义", this.Callback<MouseEventArgs>(OnClick));
    }

    private void OnClick(MouseEventArgs args) { }
}
  • 效果如下
    image
  1. EFCore配置如下
  • XXX.Web项目中引用
<Project Sdk="Microsoft.NET.Sdk.Web">
    <ItemGroup>
        <PackageReference Include="Known.EntityFramework" Version="1.0.0" />
        <!--还需要添加EFCore的数据库依赖,此处以SqlServer为例-->
        <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.8" />
    </ItemGroup>
</Project>
  • Program.cs文件中添加如下代码
builder.Services.AddKnownEntityFramework(option =>
{
    // 配置数据库
    option.OnConfig = c => c.UseSqlServer(builder.Configuration.GetSection("ConnString").Get<string>());
    // 在此配置业务库数据模型
    //option.OnModel = m => m.Entity<SysLog>();
});
From:https://www.cnblogs.com/known/p/18445041
本文地址: http://www.shuzixingkong.net/article/2446
0评论
提交 加载更多评论
其他文章 C++指针等于地址加偏移量
概述 本文通过c++示例代码演示指针的加减法运算及对 “指针 = 地址 + 偏移量” 的理解。 研究示例 1. 首先来检查各种变量类型所占的内存大小 #include &lt;iostream&gt; using namespace std; int main(){ cout &lt;&lt; si
C++指针等于地址加偏移量 C++指针等于地址加偏移量
transaction_timeout:达到事务超时时终止会话
功能实现背景说明 我们已经有两个参数来控制长事务:statement_timeout 和 idle_in_transaction_session_timeout。但是,如果事务执行的命令足够短且不超过 statement_timeout,并且命令之间的暂停时间适合 idle_in_transacti
transaction_timeout:达到事务超时时终止会话 transaction_timeout:达到事务超时时终止会话 transaction_timeout:达到事务超时时终止会话
《痞子衡嵌入式半月刊》 第 108 期
痞子衡嵌入式半月刊: 第 108 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。 本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue,投稿或推荐你知道的嵌入式那些事儿。 上期回
《痞子衡嵌入式半月刊》 第 108 期 《痞子衡嵌入式半月刊》 第 108 期 《痞子衡嵌入式半月刊》 第 108 期
Nuxt.js 应用中的 app:rendered 钩子详解
title: Nuxt.js 应用中的 app:rendered 钩子详解 date: 2024/10/2 updated: 2024/10/2 author: cmdragon excerpt: 摘要:本文详细介绍了 Nuxt.js 应用程序中的 app:rendered 钩子,包括其定义、调用时
Nuxt.js 应用中的 app:rendered 钩子详解 Nuxt.js 应用中的 app:rendered 钩子详解
Linux_动态库与静态库(其一)
1.动态库和静态库的定义 动态库(.so):动态库是编译后不嵌入目标文件中的共享库,在程序运行的时候才去链接动态库的代码,可以被多个程序共享使用,通常以 .so 结尾。 静态库(.a):静态库是将一组目标文件(.o文件)打包成一个单一的归档文件。在编译时,链接器会将所需的目标文件代码复制到最终生成的
Linux_动态库与静态库(其一) Linux_动态库与静态库(其一) Linux_动态库与静态库(其一)
Nuxt.js 应用中的 app:redirected 钩子详解
title: Nuxt.js 应用中的 app:redirected 钩子详解 date: 2024/10/3 updated: 2024/10/3 author: cmdragon excerpt: app:redirected 是 Nuxt.js 中的一个钩子,主要用于处理服务器端渲染(SSR)
Nuxt.js 应用中的 app:redirected 钩子详解 Nuxt.js 应用中的 app:redirected 钩子详解
全网最适合入门的面向对象编程教程:55 Python字符串与序列化-字节序列类型和可变字节字符串
在Python中,字符编码是将字符映射为字节的过程,而字节序列(bytes)则是存储这些字节的实际数据结构,字节序列和可变字节字符串的主要区别在于其可变性和用途,bytearray是可变的字节序列,允许修改其内容。
全网最适合入门的面向对象编程教程:55 Python字符串与序列化-字节序列类型和可变字节字符串 全网最适合入门的面向对象编程教程:55 Python字符串与序列化-字节序列类型和可变字节字符串 全网最适合入门的面向对象编程教程:55 Python字符串与序列化-字节序列类型和可变字节字符串
C++函数指针详解
本文详细介绍了C/C++中的普通函数和类的成员函数的指针。结合C++代码示例讲解了函数指针作为其他函数的输入、返回值以及typedef如何提高代码可读性的实用技巧。对于类的成员函数(方法)指针,则分为静态和非静态两种情况。最后总结了普通函数、类的非静态成员函数、类的静态成员函数的声明、赋值和定义的C