大家好,国庆节快乐,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) { }
}
  • 效果如下

  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>();
});

Blazor开发框架Known-V2.0.13的更多相关文章

  1. 微信快速开发框架(六)-- 微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github

    4月28日,已增加多媒体上传及下载API,对应MediaUploadRequest和MediaGetRequest ------------------------------------------ ...

  2. paip.重装系统需要备份的资料总结..v2.0 cad

    paip.重装系统需要备份的资料总结..v2.0  cad 这里我的系统装在C盘..所以需要备份C盘的东西就好了.. 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  ...

  3. 基于MVC4+EasyUI的Web开发框架经验总结(13)--DataGrid控件实现自动适应宽带高度

    在默认情况下,EasyUI的DataGrid好像都没有具备自动宽度的适应功能,一般是指定像素宽度的,但是使用的人员计算机的屏幕分辨率可能不一样,因此导致有些地方显示太大或者太小,总是不能达到好的预期效 ...

  4. 百度地图V2.0实践项目开发工具类bmap.util.js V1.4

    /** * 百度地图使用工具类-v2.0(大眾版) * * @author boonya * @date 2013-7-7 * @address Chengdu,Sichuan,China * @em ...

  5. WXPP QuickFramework V2.0

    微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github   用了一个多星期的时间,把微信快速开发框架进行了改进,之前1.0版本针对的是普通订阅号,V2. ...

  6. 生鲜配送管理系统_升鲜宝V2.0 供应商协同系统设计思想及设计效果展现(一)

    生鲜配送管理系统[升鲜宝]V2.0 供应商协同系统小程序设计思想及操作说明(一)     生鲜供应链企业,最重要的二个方面,其中一个是客户服务(销售订单)    另外一个就是供应商的管控,只有做好了这 ...

  7. 【Oracle RAC】Linux系统Oracle12c RAC安装配置详细记录过程V2.0(图文并茂)

    [Oracle RAC]Linux系统Oracle12c RAC安装配置详细过程V2.0(图文并茂) 2 Oracle12c RAC数据库安装准备工作2.1 安装环境介绍2.2 数据库安装软件下载3 ...

  8. 【转】Beginning Game Programming v2.0

    Beginning Game Programming v2.0 Last Updated 8/19/18 Greetings everyone, welcome to the ground up re ...

  9. 网关局域网通信协议V2.0

    http://docs.opencloud.aqara.cn/development/gateway-LAN-communication/ https://github.com/aqara/openc ...

  10. paip.提升性能--多核编程中的java .net php c++最佳实践 v2.0 cah

    paip.提升性能--多核编程中的java .net php c++最佳实践  v2.0 cah 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax ...

随机推荐

  1. LeetCode455.分发饼干

    LeetCode题目链接:https://leetcode.cn/problems/assign-cookies/description/ 题目叙述 假设你是一位很棒的家长,想要给你的孩子们一些小饼干 ...

  2. python selenium 判断元素是否存在,实现:找到元素,执行对应的代码;找不到元素,继续执行其他代码

    selenium因为找不到元素会抛出异常,导致执行结束 可以考虑使用driver.find_elements(),找不到元素时就会返回空列表,使用if-else语句,判断列表是否为空,非空,则正常找到 ...

  3. 彻底搞懂python super函数的作用

    super() 的入门使用 在类的继承中,如果重定义某个方法,该方法会覆盖父类的同名方法,但有时,我们希望能同时实现父类的功能,这时,我们就需要调用父类的方法了. 调用父类同名方法有两种方式: 1.调 ...

  4. java17特性:文本块

    例子 String content= """ { "text_1":"%s", "text_2":" ...

  5. Microsoft Dynamics CRM 高级查找不能搜索实体的解决方案(浏览器插件)

    背景 我们搜索某个实体的记录的时候,一般会去对应的视图"可用的XXX",但是视图自带的条件过滤了一些数据,或者缺少了我们所需要的列,或者不能查询关联实体.这时候我们需要用到高级查找 ...

  6. 【SpringBoot】Re 02 Import与自定义装配实现

    Import的注册形式: 1.使用@Import导入一个或者多个类字节对象 @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME ...

  7. java集合专题之Collection接口

    1.背景 集合是java中非常重要的技术点,也是面试经常问到的技术点.... 2.集合体系 单列集合 双列集合,key value集合 如果出去面试,这体系应该可以背出来,才算合格 3.常用方法 代码 ...

  8. [CEOI2007] 树的匹配 Treasury 题解

    前言 题目链接:洛谷. 题目简述 给一棵树,问你这棵树的最大匹配是多少,并且计算出有多少种最大匹配. 题目分析 先来考虑较简单的最大匹配数.对于某一个结点,它有以下三种状态: 不参与匹配: 和某一个儿 ...

  9. 全网最适合入门的面向对象编程教程:35 Python的内置数据类型-文档字符串和__doc__属性

    全网最适合入门的面向对象编程教程:35 Python 的内置数据类型-文档字符串和__doc__属性 摘要: 在 Python 中,文档字符串(Docstring)是一种用于为模块.类.方法或函数编写 ...

  10. SMU Autumn 2023 Round 2(Div.1+2)

    SMU Autumn 2023 Round 2(Div.1+2) C. Chaotic Construction 把环展开的话就是\(1 \sim 2n\),若\(D\)的位置放上路障的话,在这个展开 ...