前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对于个人(注册表)与团队(团队表)(两张表没有关联)的展示与可空判断

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

作者头像
wfaceboss
发布2019-04-08 11:41:16
6370
发布2019-04-08 11:41:16
举报
文章被收录于专栏:wfacebosswfaceboss

1,在Model中只有GroupId没有名称(GroupName),所以自己定义一个:

代码语言:javascript
复制
  /// <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)列表展示中

代码语言:javascript
复制
 columns: [{
  field: "GroupName",//团队标识名称
  title:    "@T("Admin.RegistratorMessage.GroupId")",
                 width:100,
                  }]

2.1在添加界面呈现方式

代码语言:javascript
复制
 <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方法)调用公共方法:

代码语言:javascript
复制
  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)

例如:添加方法中

代码语言:javascript
复制
public ActionResult Create()
        {
            var model = new RegistratorMessageModel();
          
            GroupNameIcon(model);//团队标识名称
            return View(model);
        }

其余方法与添加方法的使用相同。

4,将界面传回来的GroupName通过查询获得GroupId(因为数据库存储的是GroupId,GroupName只是自己定义的为了临时展示用的)

使用方式的方式调用:

方法为:

代码语言:javascript
复制
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)

代码语言:javascript
复制
 [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);
        }

 上面这种做法有一个问题就是:如何在添加或者编辑的时候出现了还没有存在数据库团队名称,则列表展示中将不会出现数据。所以不建议才有公共里面的方法

使用这种判断方式:先判断在团队存在的是否存在的前提下,再在去查询匹配数据库,进而判断是否赋值

代码语言:javascript
复制
   if (entity.GroupId != null)
            {
                var team = _groupRegistratorMessageService.GetAllGroupRegistratorMessages().FirstOrDefault(g => g.Id == entity.GroupId);
                if (team != null)
                {
                    model.TeamName = team.GroupName;
                }
            }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-01-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档