public ActionResult GradeStudentList(Models.StudentBest.GradeStudentList vm)
 {
     return(Code.MvcHelper.Post(null, Url.Action("GradeStudentList", new
     {
         SearchText = vm.SearchText,
         GradeId = vm.GradeId,
         pageIndex = vm.Page.PageIndex,
         pageSize = vm.Page.PageSize
     })));
 }
        public ActionResult GradeStudentList()
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                var vm             = new Models.StudentBest.GradeStudentList();
                var bestStudentIds = db.Table <Student.Entity.tbStudentBest>()
                                     .Select(d => d.tbStudent.Id).ToList();
                vm.GradeList = Basis.Controllers.GradeController.SelectList();
                if (vm.GradeId <= 0)
                {
                    vm.GradeList.FirstOrDefault().Selected = true;
                    vm.GradeId = vm.GradeList.FirstOrDefault().Value.ConvertToInt();
                }

                var tb = db.Table <Basis.Entity.tbClassStudent>();

                if (vm.GradeId > 0)
                {
                    tb = tb.Where(d => d.tbClass.tbGrade.Id == vm.GradeId);
                }
                if (string.IsNullOrWhiteSpace(vm.SearchText))
                {
                    tb = tb.Where(d => d.tbClass.ClassName.Contains(vm.SearchText) ||
                                  d.tbStudent.StudentName.Contains(vm.SearchText) ||
                                  d.tbStudent.StudentCode.Contains(vm.SearchText));
                }

                vm.DataList = (from p in tb
                               orderby p.No
                               select new Dto.StudentBest.GradeStudentList()
                {
                    ClassName = p.tbClass.ClassName,
                    StudentId = p.tbStudent.Id,
                    StudentCode = p.tbStudent.StudentCode,
                    StudentName = p.tbStudent.StudentName,
                    SexName = p.tbStudent.tbSysUser.tbSex.SexName
                }).ToPageList(vm.Page);

                foreach (var v in vm.DataList)
                {
                    v.IsBest = bestStudentIds.Contains(v.StudentId) ? true : false;
                }

                return(View(vm));
            }
        }