对于个人(注册表)与团队(团队表)(两张表没有关联)的展示与可空判断

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

posted on 2017-01-16 13:37 WFaceBoss 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/wfaceboss/p/6289321.html

对于个人(注册表)与团队(团队表)(两张表没有关联)的展示与可空判断相关推荐

  1. oracle两张表 比较好,比较Oracle两张表的数据是否一样

    比较Oracle两张表的数据是否一样 爱搞机 2008-10-21 11:00 在某些情况下,我们会需要比较两张表的数据是否一样. 假设有两张表A与表B他的字段相同,但是当中的数据可能不同,而且有些字 ...

  2. mysql 两表拼接_数据库将两张表进行横向连接(拼接成一张表的形式显示)

    将两张没有关联字段的表进行横向连接,在工作中,对于一些报表的显示,需要展示两张没有关联字段的表中的数据,并且横向连接,比如下面两张表的数据: SELECT * FROM STUDENT T; SELE ...

  3. mysql update后可以跟两个表_update后可接两张表吗,

    展开全部 一条update只能修改一张表里的字段,但是可以关联多张表去修改.不知道你用的62616964757a686964616fe58685e5aeb931333365643662是什么数据库. ...

  4. mysql如何两个表取差集_mysql 查询两张表的差集

    今天在做一个小功能的时候,遇到了需要取两个表的差集,本来可以直接通过两次查表然后通过代码去处理. 由于我个人比较喜欢减少数据库交互,所以在网上查了下关于mysql两个表取差集的方案.但是发现很多的 差 ...

  5. access如何查询两张表的内容_Access使用技术2:使用交叉表查询向导进行每日汇总...

    个人主页:http://office-access.cn 公众号:DataMapHuanyu Access使用技术2:使用交叉表查询向导进行每日汇总 Access交叉表查询可以合并每日的量,日汇总功能 ...

  6. SQL 新旧两张表数据对比是否一致

    有新旧两张表结构一样的表,需要对比一下两张表的数据是否一致. 1.首先对比一下数据量 select count(1)from table_new; select count(1)from table_ ...

  7. 动人的牵线美的连接符-两张表的查询(一)

            牵线,想起过去不久的七夕,喜鹊为牛郎织女搭起约会的鹊桥,看是多美丽的天衣无缝的相逢.         最近在做高校云4.0项目,从考评跑到UI,成功地被调到成绩系统.说实话对成绩系统的 ...

  8. MySQL 两张表数据合并

    有一个需求, 需要从数据库中导出两张表的数据到同一个excel中 鉴于是临时的业务需求, 直接使用Navicat 进行查询并导出数据. 数据涉及到三张表 CREATE TABLE `bigdata_q ...

  9. C#合并两张表结构相同(列数和列类型都相同)的表

    DataTable appendDataTable=new DataTable(); 这个合并的大前提是两张表的结构相同且列的类型也必须相同 否则在赋值时就会出现异常. for (int i = 0; ...

最新文章

  1. linux conntrack命令 路由连接 跟踪表 显示删除监听记录
  2. Docker中运行命令时提示:Cannot connect to the Docker daemony...以及设置docker开机启动
  3. 通过URL传参数,然后第二个页面需要获取参数
  4. python3(六)监督学习
  5. 前端学PHP之文件操作(认真读读)
  6. [线性代数]Note4--A的LU分解转置-置换-向量空间
  7. Python学习笔记:生成器(Generator)
  8. Git 安装和使用教程(更加详细)
  9. Bootstrap 多媒体对象
  10. 高通QFIL 导出所有分区
  11. Linux 硬盘读写测速
  12. Java类和对象 详解(二)
  13. iredmail邮件服务器安装流程
  14. Java List转Json字符串
  15. Win10的截图功能
  16. HashMap的最大容量为什么是1左移30(2的30次方)
  17. 世上最污技术解读,我竟然秒懂了
  18. 163邮箱vip会员体系,看收费邮箱行业未来!
  19. 浅谈分享什么是无线空气温湿度传感器?4g温湿度计技术参数?
  20. 软件产品测试的准入准出标准有哪些?

热门文章

  1. android 代码设置 键盘适应_硬核软件,能在电脑上控制iPhone和Android手机
  2. web安全---XSS利用平台BLUE-LOTUS安装与使用
  3. 攻破Win7~Win10 PatchGuard(KPP DSE)【支持Win10 TH1/TH2/RS1/RS2】【WIN64内核越狱】
  4. kali linux编辑记事本,kali linux操作系统
  5. mysql 学习笔记04 insert与update语句
  6. 计算机网路【2】数据链路层
  7. 从一个字符串中删除另一个字符串中出现过的字符
  8. 蓝桥单片机赛题及模拟题代码
  9. 【C++ Priemr | 15】虚函数表剖析(三)
  10. System V 消息队列