对于个人(注册表)与团队(团队表)(两张表没有关联)的展示与可空判断
1,在Model中只有GroupId没有名称(GroupName),所以自己定义一个:
/// <summary>/// RegistratorMessage 界面模型类/// </summary>[Validator(typeof(RegistratorMessageValidator))]public partial class RegistratorMessageModel : BaseNopEntityModel{/// <summary>/// RegistratorMessage构造/// </summary>public RegistratorMessageModel(){}/// <summary>/// 获取或设置 团队标识/// </summary>[NopResourceDisplayName("Admin.RegistratorMessage.GroupId")][UIHint("Int32Nullable")]public Nullable<int> GroupId { get; set; }/// <summary>/// 团队标识名称/// </summary>public string GroupName { get; set; }}
2.在界面(view)列表展示中
columns: [{field: "GroupName",//团队标识名称title: "@T("Admin.RegistratorMessage.GroupId")",width:100,}]
2.1在添加界面呈现方式
<div class="form-group"><div class="col-md-3">@Html.NopLabelFor(model => model.GroupId)</div><div class="col-md-6">@Html.NopEditorFor(model => model.GroupName)//输入框中的值@Html.ValidationMessageFor(model => model.GroupId)</div></div>
3.在服务端(控制器中)
为了能呈现界面的GroupName ,故需要在控制器中(ListInfo方法,Create方法,Edit方法)调用公共方法:
public string GroupNameIcon(RegistratorMessageModel model){if (model.GroupId.HasValue)//用0标识不是团队 判断是否可空 {if (model.GroupId.Value != 0)//判断是否为0(即个人){model.GroupName = _groupRegistratorMessageService.GetGroupRegistratorMessageById(model.GroupId.Value).GroupName;}else{model.GroupName = "0";}}else{model.GroupName = "0";}return model.GroupName;}
调用方式为:GroupNameIcon(model)
例如:添加方法中
public ActionResult Create(){var model = new RegistratorMessageModel();GroupNameIcon(model);//团队标识名称return View(model);}
其余方法与添加方法的使用相同。
4,将界面传回来的GroupName通过查询获得GroupId(因为数据库存储的是GroupId,GroupName只是自己定义的为了临时展示用的)
使用方式的方式调用:
方法为:
private void GroupIdIcon(RegistratorMessageModel model, RegistratorMessage eventInfo){eventInfo.GroupId = _groupRegistratorMessageService.GetAllGroupRegistratorMessages().FirstOrDefault(x => x.GroupName == model.GroupName) != null ? (_groupRegistratorMessageService.GetAllGroupRegistratorMessages().FirstOrDefault(x => x.GroupName == model.GroupName).Id) : 0;}
4.1方法的调用为:
例子:添加界面(将输入的GroupName转为数据库可以存放的GroupId)
[HttpPost, ParameterBasedOnFormName("save-continue", "continueEditing")]public ActionResult Create(RegistratorMessageModel model, bool continueEditing){if (ModelState.IsValid){var Info = model.ToEntity();GroupIdIcon(model, Info);//获得团队id _registratorMessageService.InsertRegistratorMessage(Info);//插入到数据库 SuccessNotification(_localizationService.GetResource("添加成功"));if (continueEditing){return RedirectToAction("Edit", new { id = Info.Id });}return RedirectToAction("List");}GroupNameIcon(model);//团队标识名称return View(model);}
上面这种做法有一个问题就是:如何在添加或者编辑的时候出现了还没有存在数据库团队名称,则列表展示中将不会出现数据。所以不建议才有公共里面的方法
使用这种判断方式:先判断在团队存在的是否存在的前提下,再在去查询匹配数据库,进而判断是否赋值
if (entity.GroupId != null){var team = _groupRegistratorMessageService.GetAllGroupRegistratorMessages().FirstOrDefault(g => g.Id == entity.GroupId);if (team != null){model.TeamName = team.GroupName;}}
转载于:https://www.cnblogs.com/wfaceboss/p/6289321.html
对于个人(注册表)与团队(团队表)(两张表没有关联)的展示与可空判断相关推荐
- oracle两张表 比较好,比较Oracle两张表的数据是否一样
比较Oracle两张表的数据是否一样 爱搞机 2008-10-21 11:00 在某些情况下,我们会需要比较两张表的数据是否一样. 假设有两张表A与表B他的字段相同,但是当中的数据可能不同,而且有些字 ...
- mysql 两表拼接_数据库将两张表进行横向连接(拼接成一张表的形式显示)
将两张没有关联字段的表进行横向连接,在工作中,对于一些报表的显示,需要展示两张没有关联字段的表中的数据,并且横向连接,比如下面两张表的数据: SELECT * FROM STUDENT T; SELE ...
- mysql update后可以跟两个表_update后可接两张表吗,
展开全部 一条update只能修改一张表里的字段,但是可以关联多张表去修改.不知道你用的62616964757a686964616fe58685e5aeb931333365643662是什么数据库. ...
- mysql如何两个表取差集_mysql 查询两张表的差集
今天在做一个小功能的时候,遇到了需要取两个表的差集,本来可以直接通过两次查表然后通过代码去处理. 由于我个人比较喜欢减少数据库交互,所以在网上查了下关于mysql两个表取差集的方案.但是发现很多的 差 ...
- access如何查询两张表的内容_Access使用技术2:使用交叉表查询向导进行每日汇总...
个人主页:http://office-access.cn 公众号:DataMapHuanyu Access使用技术2:使用交叉表查询向导进行每日汇总 Access交叉表查询可以合并每日的量,日汇总功能 ...
- SQL 新旧两张表数据对比是否一致
有新旧两张表结构一样的表,需要对比一下两张表的数据是否一致. 1.首先对比一下数据量 select count(1)from table_new; select count(1)from table_ ...
- 动人的牵线美的连接符-两张表的查询(一)
牵线,想起过去不久的七夕,喜鹊为牛郎织女搭起约会的鹊桥,看是多美丽的天衣无缝的相逢. 最近在做高校云4.0项目,从考评跑到UI,成功地被调到成绩系统.说实话对成绩系统的 ...
- MySQL 两张表数据合并
有一个需求, 需要从数据库中导出两张表的数据到同一个excel中 鉴于是临时的业务需求, 直接使用Navicat 进行查询并导出数据. 数据涉及到三张表 CREATE TABLE `bigdata_q ...
- C#合并两张表结构相同(列数和列类型都相同)的表
DataTable appendDataTable=new DataTable(); 这个合并的大前提是两张表的结构相同且列的类型也必须相同 否则在赋值时就会出现异常. for (int i = 0; ...
最新文章
- linux conntrack命令 路由连接 跟踪表 显示删除监听记录
- Docker中运行命令时提示:Cannot connect to the Docker daemony...以及设置docker开机启动
- 通过URL传参数,然后第二个页面需要获取参数
- python3(六)监督学习
- 前端学PHP之文件操作(认真读读)
- [线性代数]Note4--A的LU分解转置-置换-向量空间
- Python学习笔记:生成器(Generator)
- Git 安装和使用教程(更加详细)
- Bootstrap 多媒体对象
- 高通QFIL 导出所有分区
- Linux 硬盘读写测速
- Java类和对象 详解(二)
- iredmail邮件服务器安装流程
- Java List转Json字符串
- Win10的截图功能
- HashMap的最大容量为什么是1左移30(2的30次方)
- 世上最污技术解读,我竟然秒懂了
- 163邮箱vip会员体系,看收费邮箱行业未来!
- 浅谈分享什么是无线空气温湿度传感器?4g温湿度计技术参数?
- 软件产品测试的准入准出标准有哪些?
热门文章
- android 代码设置 键盘适应_硬核软件,能在电脑上控制iPhone和Android手机
- web安全---XSS利用平台BLUE-LOTUS安装与使用
- 攻破Win7~Win10 PatchGuard(KPP DSE)【支持Win10 TH1/TH2/RS1/RS2】【WIN64内核越狱】
- kali linux编辑记事本,kali linux操作系统
- mysql 学习笔记04 insert与update语句
- 计算机网路【2】数据链路层
- 从一个字符串中删除另一个字符串中出现过的字符
- 蓝桥单片机赛题及模拟题代码
- 【C++ Priemr | 15】虚函数表剖析(三)
- System V 消息队列