//根据查询条件获得分页数据
        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);
        }