# BootstrapBlazorSqlSugarDemo **Repository Path**: alonxiong/BootstrapBlazorSqlSugarDemo ## Basic Information - **Project Name**: BootstrapBlazorSqlSugarDemo - **Description**: 本项目是基于BootstrapBlazor和SqlSugar的Demo - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2021-10-29 - **Last Updated**: 2024-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BootstrapBlazorSqlSugarDemo #### 介绍 本项目是基于[BootstrapBlazor](https://gitee.com/LongbowEnterprise/BootstrapBlazor)和[SqlSugar](https://gitee.com/dotnetchina/SqlSugar)的Demo #### 软件架构 BlazorApp:Blazor WebAssembly项目 WebApp: WebApi接口项目 #### 安装教程 1. BlazorApp\Model目录下mysql-newdb.db新建表 2. WebApp\appsettings.json修改数据库连接属性 3. 运行webApp项目 4. 运行BlazorApp项目 5. 打开 https://localhost:44311 点击Student即可看到 #### 注意事项 1、为了同一个 Item可以用在高级搜索和编辑面页,扩展了RadioList-->RadioListX, 加上了一个属性isNotNull 刚开始用RadioList,如果为bit或tinyint则实体类中自动生成是bool类型,则在razor页面上则要使用 ``` XXXItems.Add(new SelectedItem("false", "禁用")); XXItems.Add(new SelectedItem("true", "启用")); ``` 如果用数据库的0和1作为SelectedItem的Value则会出现无法选择的情况 在实际操作中,数据库类型要改为smallint?,注意后面有个?号,意味着可为null值。 然后在razor页面OnInitialized函数中初始化,例如: ``` StateItems.Add(new SelectedItem("", "全部")); foreach (var item in Enums.GetMembers()) { StateItems.Add(new SelectedItem(item.ToInt32().ToString(), item.Attributes.Get().Description)); } ``` 然后再 ```
``` 注意EditTemplate中增加了一个isNotNull="true",这样在编辑页面中就不会出现Value为空字串的选项了 如果想要在新增页面给一个初始化值,可以在OnAddAsync函数中new一个实体类,给要初始化的字段加上值 2、目前DateTimeRange有点问题,就是第一次点击无论如何都是当天的值,因此用两个DateTimePicker代替 但这两个DateTimePicker的Value都没有在Model内,所以在提交到WebApi时要手动加上这两个值 ``` Student student = options.SearchModel as Student; //var dicts = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(student)); var dicts = student.GetType().GetProperties().ToDictionary(q => q.Name, q => q.GetValue(student)); //将Birth查询条件加入条件中 if (Birth_Start != null) { dicts.Add("Birth_Start", Birth_Start?.ToString("yyyy-MM-dd")); } else { dicts.Add("Birth_Start", null);//一定要加这个,否则Sqlsugar就不能用WhereIF } if (Birth_End != null) { dicts.Add("Birth_End", Birth_End?.ToString("yyyy-MM-dd")); } else { dicts.Add("Birth_End", null);//一定要加这个,否则Sqlsugar就不能用WhereIF } options.SearchModel = dicts; ```