点这里进入ABP进阶教程目录

我们尝试在新增/编辑界面增加一个下拉框用来代替输入框编辑Status

添加实体

打开领域层(即JD.CRS.Core)的Entitys目录 //用以存放实体对象
添加一个类StatusCode.cs //状态信息

using System;
using System.Collections.Generic;
using System.Text; namespace JD.CRS.Entitys
{
public enum StatusCode : byte
{
Enabled = ,
Disabled =
}
}

更新模型

更新查询视图模型

打开展示层(即JD.CRS.Web.Mvc)的Models/Course/CourseListViewModel.cs //Course查询视图模型

新增GetStatusList方法 //获取状态列表

 public StatusCode? Status { get; set; }

 public List<SelectListItem> GetStatusList(ILocalizationManager localizationManager)
{
var list = new List<SelectListItem>
{
new SelectListItem
{
Text = localizationManager.GetString(CRSConsts.LocalizationSourceName, "PleaseSelect"),
Value = "",
Selected = Status == null
}
}; list.AddRange(Enum.GetValues(typeof(StatusCode))
.Cast<StatusCode>()
.Select(status =>
new SelectListItem
{
Text = localizationManager.GetString(CRSConsts.LocalizationSourceName, $"StatusCode_{status}"),
Value = status.ToString(),
Selected = status == Status
})
); return list;
}

更新编辑视图模型

打开展示层(即JD.CRS.Web.Mvc)的Models/Course/EditCourseModalViewModel.cs //Course编辑视图模型

新增GetStatusList方法 //获取状态列表

 public List<SelectListItem> GetStatusList(ILocalizationManager localizationManager)
{
var list = new List<SelectListItem>
{
}; list.AddRange(Enum.GetValues(typeof(StatusCode))
.Cast<StatusCode>()
.Select(status =>
new SelectListItem
{
Text = localizationManager.GetString(CRSConsts.LocalizationSourceName, $"StatusCode_{status}"),
Value = status.ToString(),
Selected = status == Status
})
); return list;
}

更新控制器

打开展示层(即JD.CRS.Web.Mvc)的Controllers/CourseController.cs //Course控制器

更新EditCourseModal方法 //向EditCourseModalViewModel传参数Status

public async Task<ActionResult> EditCourseModal(int courseId)
{
var course = await _courseAppService.Get(new EntityDto<int>(courseId));
var model = new EditCourseModalViewModel
{
Course = course,
Status = course.Status
};
return View("_EditCourseModal", model);
}

更新创建视图

打开展示层(即JD.CRS.Web.Mvc)的Views/Course/Index.cshtml //Course查询视图

添加下拉框Status //以替代输入框Status

<div class="row clearfix">
<div class="col-sm-12">
<div class="form-line">
<label class="form-label">@L("Status")</label>
@Html.DropDownListFor(
model => model.Status,
Model.GetStatusList(LocalizationManager),
new
{
@class = "form-control",
id = "Status"
})
@*<input name="Status" type="text" class="form-control" />*@
</div>
</div>
</div>

更新编辑视图

打开展示层(即JD.CRS.Web.Mvc)的Views/Course/_EditCourseModal.cshtml //Course编辑视图

添加下拉框Status //以替代输入框Status

<div class="row clearfix">
<div class="col-sm-12">
<div class="form-line">
<label class="form-label">@L("Status")</label>
@Html.DropDownListFor(
model => model.Status,
Model.GetStatusList(LocalizationManager),
new
{
@class = "form-control",
id = "Status"
})
@*<input name="Status" type="text" value="@Model.Course.Status" class="form-control" />*@
</div>
</div>
</div>

更新脚本

打开展示层(即JD.CRS.Web.Mvc)的\wwwroot\view-resources\Views\Course\_EditCourseModal.js //用以存放Course编辑相关脚本

在初始化Form时给下拉框传值

//Initial form
_$modal.on('shown.bs.modal', function () {
_$form.find('input[type=text]:first').focus();//focus first input
_$status.val() = status;//Status value
});

预览效果

创建课程

编辑课程

最新文章

  1. 【解决方案】 org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#39;userHandler&#39;: Injection of resource dependencies failed;
  2. python基础05 if选择
  3. mysql 怎么通过sql语句批量去掉某一个表中某一个字段的多余字符
  4. 1Z0-053 争议题目解析212
  5. C#异常处理的几个原则
  6. Play1+angularjs+bootstrap ++ (idea + livereload)
  7. QTdebug时没有调试引擎
  8. imx6 RGB LCD
  9. PHP写入Txt
  10. test chemes
  11. C++ 函数重载与函数匹配
  12. Breaking parallel loops in .NET C# using the Stop method z
  13. dp优化简单总结
  14. python有三种导入模块的方法(转)
  15. Gradle sync failed 异常
  16. 安卓高级3 RecyclerView结合SwipeRefreshLayout并添加上拉
  17. python使用redis
  18. Problem 2285 迷宫寻宝
  19. Mudo C++网络库第二章学习笔记
  20. 高并发编程基础(java.util.concurrent包常见类基础)

热门文章

  1. flex常见布局
  2. ThinkPHP5.x.x各版本实战环境getshell
  3. 转载:wepy框架入门
  4. 使用 vs code 创建 Django 项目
  5. EF中嵌套类的where查询
  6. python(leetcode)498. 对角线遍历
  7. Linux设备树文件结构与解析深度分析
  8. python程序封装成exe流程
  9. Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数
  10. 【WPF on .NET Core 3.0】 Stylet演示项目 - 简易图书管理系统(2) - 单元测试