//根据查询条件获得分页数据
        private IEnumerable <CarCategory> LoadPageCarCategoryData(CarCategoryQueryParams param, out int total)
        {
            var allCarCategories =
                CarCategoryRepository.LoadEntities(
                    c => c.Status == (short)StatusEnum.Enable && c.DelFlag == (short)DelFlagEnum.Normal);

            if (!string.IsNullOrEmpty(param.Name))
            {
                allCarCategories = allCarCategories.Where(c => c.Name.Contains(param.Name));
            }
            if (!string.IsNullOrEmpty(param.JoinStartTime.ToString()) &&
                !string.IsNullOrEmpty(param.JoinEndTime.ToString()))
            {
                allCarCategories =
                    allCarCategories.Where(c => c.SubTime >= param.JoinStartTime && c.SubTime <= param.JoinEndTime);
            }

            total = allCarCategories.Count();

            IEnumerable <CarCategory> result = allCarCategories
                                               .OrderByDescending(c => c.ID)
                                               .Skip(param.PageSize * (param.PageIndex - 1))
                                               .Take(param.PageSize);

            return(result);
        }
        //显示所有分类并考虑查询和分页
        public ActionResult GetCarCategoryJson()
        {
            //获取datagrid传来的2个参数
            int pageIndex = int.Parse(Request["page"]);
            int pageSize  = int.Parse(Request["rows"]);

            //获取搜索参数
            if (!string.IsNullOrEmpty(Request["txtName"]))
            {
                txtName = Request["txtName"];
            }
            if (!string.IsNullOrEmpty(Request["startSubTime"]))
            {
                startSubTime = DateTime.Parse(Request["startSubTime"]);
            }
            if (!string.IsNullOrEmpty(Request["endSubTime"]))
            {
                endSubTime = DateTime.Parse(Request["endSubTime"]);
            }

            //初始化查询实例
            var temp = new CarCategoryQueryParams
            {
                PageIndex     = pageIndex,
                PageSize      = pageSize,
                Name          = txtName,
                JoinEndTime   = endSubTime,
                JoinStartTime = startSubTime
            };

            //获取所有满足条件的数据,并获得总记录数
            int totalNum       = 0;
            var allCarCategory = LoadPageCarCategoryData(temp, out totalNum);

            //投影出需要传递到前台的数据
            var result = from c in allCarCategory
                         select new
            {
                c.ID,
                c.Name,
                c.IsLeaf,
                c.Level,
                c.ParentID,
                c.PreLetter,
                c.Status,
                c.DelFlag,
                c.SubTime
            };

            //构建datagrid所需要的json格式
            var jsonResult = new { total = totalNum, rows = result };

            return(Json(jsonResult, JsonRequestBehavior.AllowGet));
        }