using Infrastructure.Data; using Infrastructure.Extensions; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; using System.Text; using TeacherExt.Entities; using TeacherExt.Models; namespace TeacherExt.Controllers { [Authorize] public class HomeController :Controller { private readonly IHostEnvironment _env; private readonly ILogger _logger; private readonly IRepository _organRepo; private readonly IRepository _userRepo; private readonly IRepository _teacherRepo; public HomeController(IHostEnvironment env, ILogger logger, IRepository organRepo, IRepository userRepo, IRepository teacherRepo) { this._env = env; _logger = logger; this._organRepo = organRepo; this._userRepo = userRepo; this._teacherRepo = teacherRepo; } public IActionResult Index(QueryTeacherModel model) { var query = Query(model); model.TotalCount = query.Count(); var list = query .Skip(model.PageSize * (model.PageIndex - 1)) .Take(model.PageSize) .ToList() .Select(o => { var m = o.Teacher != null?o.Teacher.To() : new EditTeacherModel(); if(o.Teacher!=null) { this.EntityToModel(o.Teacher, m); } m.UserId = o.Id; m.Organ = o.Organ.Name; m.RealName = o.RealName; return m; }).ToList(); model.List.AddRange(list); ViewData.SelectList(o => model.RequestEditStatus, () => this.GetRequestEditStatus(model.RequestEditStatus)); ViewData.SelectList(o => model.CheckStatus, () => this.GetCheckStatus(model.CheckStatus)); return View(model); } public IActionResult Details(Guid id) { var entity = this._teacherRepo.ReadOnlyTable().FirstOrDefault(o => o.Id == id); var model = entity.To(); this.EntityToModel(entity, model); return View(model); } public IActionResult Add() { var model = new EditTeacherModel(); this.ToEditModel(null,model); return View(model); } public IActionResult Edit(Guid userId) { var entity = this._userRepo.ReadOnlyTable() .Include(o=>o.Organ) .Include(o=>o.Teacher) .FirstOrDefault(o => o.Id == userId); var model = entity.To(); model.UserId = entity.Id; model.Organ = entity.Organ.Name; model.RealName = entity.RealName; this.EntityToModel(entity.Teacher, model); this.ToEditModel(entity.Teacher, model); return View(model); } [HttpPost] public IActionResult Add(EditTeacherModel model) { if(ModelState.IsValid) { var entity = new Teacher(); entity.From(model); this._teacherRepo.Add(entity); this._teacherRepo.SaveChanges(); return RedirectToAction("Index"); } this.ToEditModel(null, model); return View(model); } [HttpPost] public IActionResult Edit(EditTeacherModel model) { var entity = this._userRepo.Table().FirstOrDefault(o => o.Id == model.UserId); if (ModelState.IsValid) { if(entity.Teacher==null) { entity.Teacher = new Teacher().From(model); } this._userRepo.SaveChanges(); return RedirectToAction("Index"); } this.EntityToModel(entity?.Teacher, model); this.ToEditModel(entity?.Teacher, model); return View(model); } /// /// https://github.com/nissl-lab/npoi/wiki/How-to-use-NPOI-on-Linux /// apt-get install libgdiplus libc6-dev /// cd /usr/lib /// ln -s libgdiplus.so gdiplus.dll /// /// public FileResult Export(QueryTeacherModel model) { var template = Path.Combine(this._env.ContentRootPath, "wwwroot", "teacher.xlsx"); using var fs = System.IO.File.OpenRead(template); var wk = new XSSFWorkbook(fs); var sheet = wk.GetSheetAt(0); this.ExportInternal(sheet,model); using var ms = new MemoryStream(); wk.Write(ms); return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"教师列表_{DateTime.Now.ToString("yyyy_MM-dd_HH_mm_ss")}.xlsx"); } private IQueryable Query(QueryTeacherModel model) { var userName = User.Identity.Name; var organId = this._userRepo.ReadOnlyTable().Where(o => o.UserName == userName).Select(o => o.OrganId).FirstOrDefault(); model.OrganId = model.OrganId.HasValue ? model.OrganId : organId; if (User.IsInRole("局管理员")) { model.Organs = this._organRepo.Table().ToList().Where(o => o.ParentId == null).ToList(); } else { model.Organs = this._organRepo.ReadOnlyTable().ToList().Where(o => o.Id == organId).ToList(); } var query = this._userRepo.ReadOnlyTable().Include(o=>o.Organ).Include(o=>o.Teacher).AsQueryable(); if (User.IsInRole("校管理员")) { query = query.Where(o => o.OrganId == organId); } else { query = query.Where(o => o.UserName == userName); } query = query .WhereIf(!string.IsNullOrEmpty(model.RequestEditStatus), o => o.Teacher.RequestEditStatus == model.RequestEditStatus) .WhereIf(!string.IsNullOrEmpty(model.CheckStatus), o => o.Teacher.CheckStatus == model.CheckStatus) .WhereIf(!string.IsNullOrEmpty(model.RealName), o => o.RealName.Contains(model.RealName)); return query; } private void ExportInternal(ISheet sheet,QueryTeacherModel model) { var style = sheet.Workbook.CreateCellStyle(); style.BorderTop = BorderStyle.Thin; style.BorderRight = BorderStyle.Thin; style.BorderBottom = BorderStyle.Thin; style.BorderLeft = BorderStyle.Thin; var list = this.Query(model) .ToList() .Select(o => { var m = o.Teacher != null ? o.Teacher.To() : new EditTeacherModel(); if (o.Teacher != null) { this.EntityToModel(o.Teacher, m); } m.UserId = o.Id; m.Organ = o.Organ.Name; m.RealName = o.RealName; return m; }) .ToList(); var rowIndex = 0; var colIndex = -1; for (int i = 0; i < list.Count; i++) { var teacher = list[i]; var rowNumber = i + 1; rowIndex = i + 4; var row = sheet.CreateRow(rowIndex); row.Order(00).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(rowNumber); row.Order(01).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Organ); row.Order(02).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.UserType); row.Order(03).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.RealName); row.Order(04).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Sex); row.Order(05).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Birthday.Value.ToString("yyyy-MM")); row.Order(06).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.Age.Value); row.Order(07).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Nation); row.Order(08).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NativePlace); row.Order(09).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.PhoneNumber); row.Order(10).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.IdNumber); row.Order(11).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobStart.Value.ToString("yyyy-MM")); row.Order(12).CreateCell(++colIndex).SetStyle(style).SetType(CellType.Numeric).SetCellValue(teacher.JobAge.Value); row.Order(13).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.TeachDate.HasValue ? teacher.TeachDate.Value.ToString("yyyy-MM") : ""); row.Order(14).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.CurrentJobStart.HasValue ? teacher.CurrentJobStart.Value.ToString("yyyy-MM") : ""); row.Order(15).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Politics); row.Order(16).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JoinPartyDate.HasValue ? teacher.JoinPartyDate.Value.ToString("yyyy-MM") : ""); row.Order(17).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxTitle); row.Order(18).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxTitleStart.Value.ToString("yyyy-MM")); if (teacher.IsJobAsMaxTitle.Value) { row.Order(19).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobAsMaxTitleDate.Value.ToString("yyyy-MM")); row.Order(20).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); row.Order(21).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); row.Order(22).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); row.Order(23).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); } else { row.Order(19).CreateCell(++colIndex).SetStyle(style); row.Order(20).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobAsNotMaxTitleReason); row.Order(21).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NotMaxTitle); row.Order(22).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NotMaxTitleStart.Value.ToString("yyyy-MM")); row.Order(23).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.JobAsNotMaxTitleDate.Value.ToString("yyyy-MM")); } row.Order(24).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.PostType); row.Order(25).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.PostGrade); row.Order(26).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.CurrentPostGradeStart.HasValue ? teacher.CurrentPostGradeStart.Value.ToString("yyyy-MM") : ""); row.Order(27).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.EducationGrade); row.Order(28).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(string.IsNullOrEmpty(teacher.EducationGrade) ? "" : teacher.EducationGradeDate.Value.ToString("yyyy-MM")); row.Order(29).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolType); row.Order(30).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchool); row.Order(31).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolMajor); row.Order(32).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolEducation); row.Order(33).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolEducationDate.HasValue ? teacher.FullTimeSchoolEducationDate.Value.ToString("yyyy-MM") : ""); row.Order(34).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolType); row.Order(35).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchool); row.Order(36).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolMajor); row.Order(37).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolEducation); row.Order(38).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FullTimeSchoolEducationDate.HasValue ? teacher.FullTimeSchoolEducationDate.Value.ToString("yyyy-MM") : ""); row.Order(39).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxEducation); row.Order(40).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MaxDegree); row.Order(41).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.IsClassTeacher ? "是" : "否"); row.Order(42).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MainTeachPeriod); row.Order(43).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MainTeachSubject); row.Order(44).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.MainTeachGrade); row.Order(45).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.OtherTeachPeriod); row.Order(46).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.OtherTeachSubject); if (teacher.HasPosition.Value) { if (teacher.IsMiddleLevel.Value) { row.Order(47).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Position); row.Order(48).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.PositionStart.HasValue ? teacher.PositionStart.Value.ToString("yyyy-MM") : ""); row.Order(49).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.FrontTeacher); row.Order(50).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); row.Order(51).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); } else { row.Order(47).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); row.Order(48).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); row.Order(49).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); row.Order(50).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); row.Order(51).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); } } else { row.Order(47).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); row.Order(48).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); row.Order(49).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String); row.Order(50).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NotOnPostReason); row.Order(51).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.NotOnPostReasonDate.HasValue ? teacher.NotOnPostReasonDate.Value.ToString("yyyy-MM") : ""); } row.Order(52).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.TeacherCardType); row.Order(53).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.TeacherCardSubject); row.Order(54).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.TeacherCardLangLevel); row.Order(55).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.CurrentAddressArea); row.Order(55).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.CurrentAddressStreat); row.Order(56).CreateCell(++colIndex).SetStyle(style).SetType(CellType.String).SetCellValue(teacher.Comment); } var colWidthList = new Dictionary(); for (int i = 0; i < rowIndex; i++) { var row = sheet.GetRow(i); for (int j = 0; j < colIndex; j++) { var cell = sheet.GetRow(i).GetCell(j); if (!colWidthList.ContainsKey(j)) { colWidthList.Add(j, 0); } var value = cell.ToString(); var array = value.Split('\n'); var length = array.Select(o => Encoding.UTF8.GetBytes(o).Count()).Max() + 2; Console.WriteLine($">>{i}x{j}:{length}:{(cell.IsMergedCell ? "merge" : "")}:{cell}"); if (length > colWidthList[j]) { if (!cell.IsMergedCell) { colWidthList[j] = length; Console.WriteLine($">>>>>{j}:{length}:{value}"); } } } } foreach (var item in colWidthList.Keys) { var width = colWidthList[item] * 256; if (width == 0) { continue; } sheet.SetColumnWidth(item, width); Console.WriteLine($"{sheet.GetRow(2).GetCell(item)}:{item}:{colWidthList[item]}"); } } public void EntityToModel(Teacher entity, EditTeacherModel model) { if(entity!=null) { if (!string.IsNullOrEmpty(entity.IdNumber)) { var value = entity.IdNumber.Length == 15 ? $"19{entity.IdNumber.Substring(6, 6)}" : entity.IdNumber.Substring(6, 8); var birthday = DateTime.ParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture); model.Age = DateTime.Now.Year - birthday.Year; } if (entity.JobStart.HasValue) { model.JobAge = DateTime.Now.Year - entity.JobStart.Value.Year; } } } public void ToEditModel(Teacher entity, EditTeacherModel model) { ViewData.SelectList(o => model.RequestEditStatus, () => this.GetRequestEditStatus(model.RequestEditStatus)); ViewData.SelectList(o => model.CheckStatus, () => this.GetCheckStatus(model.CheckStatus)); ViewData.SelectList(o => model.UserType, () => this.GetUserType(model.UserType)); ViewData.SelectList(o => model.Sex, () => this.GetSex(model.Sex)); ViewData.SelectList(o => model.Nation, () => this.GetNation(model.Nation)); ViewData.SelectList(o => model.Politics, () => this.GetPolitics(model.Politics)); ViewData.SelectList(o => model.MaxTitle, () => this.GetTitle(model.MaxTitle)); ViewData.SelectList(o => model.NotMaxTitle, () => this.GetTitle(model.NotMaxTitle)); ViewData.SelectList(o => model.PostType, () => this.GetPost(model.PostType)); ViewData.SelectList(o => model.PostGrade, () => this.GetPostGrade(model.PostGrade)); ViewData.SelectList(o => model.EducationGrade, () => this.GetEducationGrade(model.EducationGrade)); ViewData.SelectList(o => model.FullTimeSchoolType, () => this.GetFullTimeSchoolType(model.FullTimeSchoolType)); ViewData.SelectList(o => model.FullTimeSchoolEducation, () => this.GetEducation(model.FullTimeSchoolEducation)); ViewData.SelectList(o => model.JobTimeSchoolType, () => this.GetFullTimeSchoolType(model.JobTimeSchoolType)); ViewData.SelectList(o => model.JobTimeSchoolEducation, () => this.GetEducation(model.JobTimeSchoolEducation)); ViewData.SelectList(o => model.MaxEducation, () => this.GetEducation(model.MaxEducation)); ViewData.SelectList(o => model.MaxDegree, () => this.GetDegree(model.MaxDegree)); ViewData.SelectList(o => model.MainTeachPeriod, () => this.GetTeachPeriod(model.MainTeachPeriod)); ViewData.SelectList(o => model.MainTeachSubject, () => this.GetTeachSubject(model.MainTeachSubject)); ViewData.SelectList(o => model.MainTeachGrade, () => this.GetTeachGrade(model.MainTeachGrade)); ViewData.SelectList(o => model.OtherTeachPeriod, () => this.GetTeachPeriod(model.OtherTeachPeriod)); ViewData.SelectList(o => model.OtherTeachSubject, () => this.GetTeachSubject(model.OtherTeachSubject)); ViewData.SelectList(o => model.Position, () => this.GetPosition(model.Position)); ViewData.SelectList(o => model.TeacherCardType, () => this.GetTeacherCardType(model.TeacherCardType)); ViewData.SelectList(o => model.TeacherCardLangLevel, () => this.GetLangLevel(model.TeacherCardLangLevel)); ViewData.SelectList(o => model.CurrentAddressArea, () => this.GetAddressArea(model.CurrentAddressArea)); } private SelectList GetRequestEditStatus(string selected) { return new string[] { "未申请", "已申请", }.ToSelectList(selected); } private SelectList GetCheckStatus(string selected) { return new string[] { "未提交", "待校级审核", "校级审核失败", "待局级审核", "局级审核失败", "局级审核成功", }.ToSelectList(selected); } private SelectList GetUserType(string selected) { return new string[] { "在编教师", "区聘教师", "校聘教师", }.ToSelectList(selected); } private SelectList GetSex(string selected) { return new string[] { "男", "女", }.ToSelectList(selected); } private SelectList GetNation(string selected) { return new string[] { "汉族", "蒙古族", "回族", "藏族", "维吾尔族", "苗族", "彝族", "壮族", "布依族", "朝鲜族", "满族", "侗族", "瑶族", "白族", "土家族", "哈尼族", "哈萨克族", "傣族", "黎族", "傈僳族", "佤族", "畲族", "高山族", "拉祜族", "水族", "东乡族", "纳西族", "景颇族", "柯尔克孜族", "土族", "达斡尔族", "仫佬族", "羌族", "布朗族", "撒拉族", "毛难族", "仡佬族", "锡伯族", "阿昌族", "普米族", "塔吉克族", "怒族", "乌孜别克族", "俄罗斯族", "鄂温克族", "崩龙族", "保安族", "裕固族", "京族", "塔塔尔族", "独龙族", "鄂伦春族", "赫哲族", "门巴族", "珞巴族", "基诺族", }.ToSelectList(selected); } private SelectList GetPolitics(string selected) { return new string[] { "中共党员", "中共预备党员", "共青团员", "群众", "民革会员", "民盟盟员", "民建会员", "民进会员", "农工党党员", "致公党党员", "九三学社社员", "台盟盟员", "其他民主党派", }.ToSelectList(selected); } private SelectList GetTitle(string selected) { return new string[] { "正高级教师", "高级教师", "一级教师", "二级教师", "未评", "工勤", }.ToSelectList(selected); } private SelectList GetPost(string selected) { return new string[] { "专技岗位", "管理岗位", "工勤岗位", }.ToSelectList(selected); } private SelectList GetPostGrade(string selected) { return new string[] { "四级", "五级", "六级", "七级", "八级", "九级", "十级", "十一级", "十二级", }.ToSelectList(selected); } private SelectList GetEducationGrade(string selected) { return new string[] { "专技十一级", "专技十二级", }.ToSelectList(selected); } private SelectList GetFullTimeSchoolType(string selected) { return new string[] { "师范院校师范专业", "师范院校非师范专业", "非师范院校师范专业", "非师范院校非师范专业", }.ToSelectList(selected); } private SelectList GetEducation(string selected) { return new string[] { "研究生博士教育", "研究生硕士教育", "大学本科教育", "大学专科教育", "中等专业教育", "普通高级中学教育", "初级中学教育", "小学教育", "其他", }.ToSelectList(selected); } private SelectList GetDegree(string selected) { return new string[] { "学士学位", "硕士学位", "博士学位", }.ToSelectList(selected); } private SelectList GetTeachPeriod(string selected) { return new string[] { "学前教育", "小学", "普通初中", }.ToSelectList(selected); } private SelectList GetTeachSubject(string selected) { return new string[] { "语文", "数学", "英语", "音乐", "体育", "美术", "科学", "书法", "信息技术", "政治", "历史", "地理", "物理", "化学", "生物", "幼教全科", "心理健康", "综合实践课", "无", }.ToSelectList(selected); } private SelectList GetTeachGrade(string selected) { return new string[] { "九年级", "八年级", "七年级", "六年级", "五年级", "四年级", "三年级", "二年级", "一年级", "幼儿园大班", "幼儿园中班", "幼儿园小班", }.ToSelectList(selected); } private SelectList GetPosition(string selected) { return new string[] { "校长", "副校长", "党支部副书记", "办公室主任", "办公室副主任", "教导处主任", "教导处副主任", "德育主任", "团支部书记", "大队辅导员", "工会主席", "总务主任", "总务副主任", }.ToSelectList(selected); } private SelectList GetTeacherCardType(string selected) { return new string[] { "幼儿园教师资格", "小学教师资格", "初级中学教师资格", "高级中学教师资格", "中等职业学校教师资格", "中等职业学校实习指导教师资格", "高等学校教师资格", }.ToSelectList(selected); } private SelectList GetLangLevel(string selected) { return new string[] { "一级甲等", "一级乙等", "二级甲等", "二级乙等", "三级甲等", }.ToSelectList(selected); } private SelectList GetAddressArea(string selected) { return new string[] { "城中区", "城北区", "城西区", "城东区", }.ToSelectList(selected); } } }