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

更新数据传输对象 

打开应用层(即jd.crs.application)的course\dto\getallcoursesinput.cs //course数据传输对象(查询条件)

增加一行代码

public string keyword { get; set; } //用于全文搜索
 1 using abp.application.services.dto;
 2 using jd.crs.entitys;
 3 
 4 namespace jd.crs.course.dto
 5 {
 6     public class getallcoursesinput: pagedresultrequestdto
 7     {
 8         public statuscode? status { get; set; }
 9         public string keyword { get; set; }
10     }
11 }

更新应用服务

打开应用层(即jd.crs.application)的course\courseappservice.cs //course应用服务

更新getall方法 //按keyword查询course

1 .whereif(
2 !input.keyword.isnullorempty(), t =>
3 t.code.tolower().contains((input.keyword ?? string.empty).tolower()) //按编号查询
4 || t.departmentcode.tolower().contains((input.keyword ?? string.empty).tolower()) //按院系编号查询
5 || t.name.tolower().contains((input.keyword ?? string.empty).tolower()) //按名称查询
6 || t.credits.tostring().contains((input.keyword ?? string.empty).tolower()) //按学分查询
7 || t.remarks.tolower().contains((input.keyword ?? string.empty).tolower()) //按备注查询
8 );

完整代码如下:

 1 public override async task<pagedresultdto<coursedto>> getall(getallcoursesinput input)
 2 {
 3     var query = base.createfilteredquery(input)
 4         .whereif(input.status.hasvalue, t => t.status == input.status.value)
 5         .whereif(
 6         !input.keyword.isnullorempty(), t =>
 7         t.code.tolower().contains((input.keyword ?? string.empty).tolower()) //按编号查询
 8         || t.departmentcode.tolower().contains((input.keyword ?? string.empty).tolower()) //按院系编号查询
 9         || t.name.tolower().contains((input.keyword ?? string.empty).tolower()) //按名称查询
10         || t.credits.tostring().contains((input.keyword ?? string.empty).tolower()) //按学分查询
11         || t.remarks.tolower().contains((input.keyword ?? string.empty).tolower()) //按备注查询
12         );
13     var coursecount = query.count();
14     var courselist = query.tolist();
15     return new pagedresultdto<coursedto>()
16     {
17         totalcount = coursecount,
18         items = objectmapper.map<list<coursedto>>(courselist)
19     };
20 }

更新模型

打开展示层(即jd.crs.web.mvc)的models/course/courselistviewmodel.cs //course查询视图模型

增加一行代码

public string keyword { get; set; }

更新控制器

打开展示层(即jd.crs.web.mvc)的controllers/coursecontroller.cs //course控制器

更新index方法 //按keyword查询course

增加一行代码

keyword = input.keyword

完整代码如下:

 1 public async task<actionresult> index(getallcoursesinput input)
 2 {
 3     ireadonlylist<coursedto> output = (await _courseappservice.getall(new getallcoursesinput { status = input.status, keyword = input.keyword })).items;
 4     var model = new courselistviewmodel(output)
 5     {
 6         status = input.status,
 7         keyword = input.keyword
 8     };
 9     return view(model);
10 }

更新视图

打开展示层(即jd.crs.web.mvc)的views/course/index.cshtml //course查询视图

插入查询条件 //按keyword查询course

 1 <div class="header">
 2     <table>
 3         <thead>
 4             <tr>
 5                 <th class="col-sm-1">@l("status")</th>
 6                 <th class="col-sm-1">
 7                     @html.dropdownlistfor(
 8                     model => model.status,
 9                     model.getstatuslist(localizationmanager),
10                     new
11                     {
12                         @class = "form-control",
13                         id = "status"
14                     })
15                 </th>
16                 <th class="col-sm-1">@l("keyword")</th>
17                 <th class="col-sm-4">
18                     <input id="keyword" name="keyword" type="text" class="form-control" placeholder="please enter the keyword..." value=@model.keyword />
19                 </th>
20                 <th class="col-sm-4"></th>
21                 <th class="col-sm-1">
22                     <button id="search" class="form-control">@l("search")</button>
23                 </th>
24             </tr>
25         </thead>
26     </table>
27 </div>

更新脚本

打开展示层(即jd.crs.web.mvc)的\wwwroot\view-resources\views\course\index.js //用以存放course查询相关脚本

插入查询条件 //按stauts & keyword 组合查询course

1 //define variable
2 var _$status = $('#status');
3 var _$keyword = $('#keyword');
4 var _$search = $('#search');
5 //search
6 _$search.click(function () {
7     location.href = '/course?status=' + _$status.val() + '&keyword=' + _$keyword.val();
8 });

预览效果