模糊查询

实际项目中呢有一个功能是必不可少的,那就是模糊查询,什么叫模糊查询呢?例如就是你在淘宝想找阿迪达斯但你不记得它的全名了只记得阿迪两个字,输入这两个字后阿迪达斯阿迪斯斯只要有阿迪两个字的都给你找出来。模糊查询就可以做到这样。下面这些就是HTML的代码,很简单就是文本框加一个点的按钮就完了。当然,这是不包括显示内容的那部分啊。

<input type="text" class="form-control" id="txtSearch">
          <div class="input-group-prepend ">
             <div class="input-group-text" onclick="tabTitleInforSearch()">搜索</div>
          </div>

下面就是页面上的样子,不包括显示内容的部分
在这里插入图片描述
下面就是页面提交数据的方法,因为有和其他的方法共用控制器所以有四个参数。现在这个方法只需要一个参数就可以了,所以其他的就人为的给他补0,让控制器接受的数据齐全不会报错。

function tabTitleInforSearch() {
            var stem = $("#txtSearch").val();
            if (stem == null || stem == undefined) {
                stem == "";
            }
            TabTitles = layuiTable.reload("tabTitles", {
                url: "/TitleBaseInfor/SelectTitles",//
                where: {
                    TitleTypeID: 0,
                    PointID: 0,
                    UnitID: 0,
                    stem: stem.trim()
                }            });      
  }

好了下面就到了控制器的代码了,一个多表连接,然后是要查的字段,接着就是条件查询。stem 才是我们的目标,我重点讲一下!string.IsNullOrEmpty(stem)就是判断他不能为空的意思,listTitles = listTitles.Where(m => m.Stem.Contains(stem)).ToList();就是查询Stem这个字段里面只要包含stem的内容都找出来,Contains是返回包含子串的字符串的意思。至于LayuiTablePage是封装好的分页的格式内容。

public ActionResult SelectTitles(LayuiTablePage layuiTablePage, int TitleTypeID, int PointID, int UnitID, string stem)
        {
            var listTitles = (from tbTitle in myModel.PW_Title
                              join tbTitleType in myModel.SYS_TitleType on tbTitle.TitleTypeID equals tbTitleType.TitleTypeID
                              join tbDofd in myModel.SYS_Dofd on tbTitle.DofdID equals tbDofd.DofdID
                              join tbSubject in myModel.SYS_Subject on tbTitle.SubjectID equals tbSubject.SubjectID
                              join tbPoint in myModel.SYS_Point on tbTitle.PointID equals tbPoint.PointID
                              join tbUnit in myModel.SYS_Unit on tbTitle.UnitID equals tbUnit.UnitID
                              select new TitlesInfor
                              {
                        列明查询所需的字段
                                  TitleID = tbTitle.TitleID,//题目ID
                                  TitleType = tbTitleType.TitleType,//题目类型
                                  Dofd = tbDofd.Dofd,//难度
                                  Subject = tbSubject.Subject,//科目
                                  Point = tbPoint.PointName,//知识点
                                  Unit = tbUnit.Unit,//使用单位
                                  Stem = tbTitle.Stem,//题目信息
                                  RightKey = tbTitle.RightKey,//正确答案
                                  Remarks = tbTitle.Remarks,//备注
                                  ToVoidNo = tbTitle.ToVoidNo,//是否作废
                                  TitleTypeID = tbTitle.TitleTypeID,//题目类型ID
                                  PointID = tbTitle.PointID,//知识点ID
                                  UnitID = tbTitle.UnitID//使用单位ID
                              }).ToList();

条件查询的判断条件

     if (TitleTypeID > 0)
            {
            listTitles = listTitles.Where(m => m.TitleTypeID == TitleTypeID).ToList();
            }
            if (PointID > 0)
            {
                listTitles = listTitles.Where(m => m.PointID == PointID).ToList();
            }
            if (UnitID > 0)
            {
                listTitles = listTitles.Where(m => m.UnitID == UnitID).ToList();
            }
            if (!string.IsNullOrEmpty(stem))
            {
                listTitles = listTitles.Where(m => m.Stem.Contains(stem)).ToList();
            }
            int totals = listTitles.Count();
            List<TitlesInfor> listTitlesInfor =
 listTitles.OrderByDescending(m => m.ToVoidNo == false)
               .Skip(layuiTablePage.GetStartIndex()).Take(layuiTablePage.limit).ToList();
        LayuiTableData<TitlesInfor> layuiTableData = new LayuiTableData<TitlesInfor>()
        {
                count = totals,
                data = listTitlesInfor
         };
            return Json(layuiTableData, JsonRequestBehavior.AllowGet);
        }

这样就可以实现模糊查询的功能,其实这个查询还是很好理解的是吧,好了说得也差不多了。下面就看一下实际的效果吧。从图片中还是可以见到效果的。效果出来了就证明了代码的正确性。好了这次的分享就到这里结束了。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值