mvc多条件查询

主要步骤如下

1.easy-ui布局布局

 <div>
        用户名:<input type="text" class="easyui-textbox" id="txtSchName" name="txtSchName"/>
        备注:<input type="text" class="easyui-textbox" id="txtSchRemark" name="txtSchRemark"/>
        <a  class="easyui-linkbutton" data-options="iconCls:'icon-search'" id="btnSearch" >搜索</a>
        <br /> <br />
    </div>

2.绑定事件

 function bindSearchBtnClick()
        {
            $('#btnSearch').click(function () {
                var data = { schName: $('#txtSchName').val(), schRemark: $('#txtSchRemark').val() };
                initTable(data);
            });
            
        }

3.后台处理

1)添加参数Model

//父类
 public class BaseParam
    {
        public int PageSize { set; get; }
        public int PageIndex { set; get; }
        public int Total { set; get; }
    }

//子类
 public class UserQueryParam : BaseParam
    {
        //search -->Sch
        public string SchName { set; get; }
        public string SchRemark { set; get; }

    }

 2)在IBLL层接口层添加方法

  public partial interface IUserInfoService : IBaseService<UserInfo>
    {
        IQueryable<UserInfo> LoadPageData(Model.Param.UserQueryParam userQueryParam);
    } 

  在BLL层添加实现

public partial class UserInfoServices : BaseService<UserInfo>, LTeasyOA.IBLL.IUserInfoService
    {
        public IQueryable<UserInfo> LoadPageData(LTeasyOA.Model.Param.UserQueryParam userQueryParam)
        {
            short normalFlag = (short)LTeasyOA.Model.Enum.DelFlagEnum.Normal;
            var temp = CurrentDal.GetEntities(c => c.DelFlag == normalFlag);
        if (!string.IsNullOrEmpty(userQueryParam.SchName))
        {
            temp = temp.Where(u => u.UName.Contains(userQueryParam.SchName)).AsQueryable();
        }

        if (!string.IsNullOrEmpty(userQueryParam.SchRemark))
        {
            temp = temp.Where(u => u.Remark.Contains(userQueryParam.SchRemark)).AsQueryable();
        }
        userQueryParam.Total = temp.Count();
            //分页
        return temp.OrderBy(c => c.ID).Skip(userQueryParam.PageSize * (userQueryParam.PageIndex - 1)).Take(userQueryParam.PageSize).AsQueryable(); 
	#endregion

  Controll控制器中添加具体实现

public ActionResult GetAllUserInfos()
        {
            int pageSize = int.Parse(Request["rows"] ?? "10");
            int pageIndex = int.Parse(Request["page"] ?? "1");

            string schName = Request["schName"];
            string schRemark = Request["schRemark"];
            int total = 0;

            var queryParam = new UserQueryParam() { 
                PageSize=pageSize,
                PageIndex=pageIndex,
                Total=total,
                SchName=schName,
                SchRemark=schRemark
            };
            var pageData = UserInfoService.LoadPageData(queryParam);
            var temp = pageData.Select(c => new {
                c.ID,
                c.UName,
                c.Remark,
                c.ShowName,
                c.SubTime,
                c.ModifiedOn,
                c.Pwd
            });
            var data = new { total = total, rows = temp.ToList() };
            return Json(data, JsonRequestBehavior.AllowGet);

        }

  

原文地址:https://www.cnblogs.com/lt123/p/7050812.html