一、新建Common文件夹,将公共类放入到此文件夹中
1、新建GridPager类
public class GridPager { public int rows { get; set; }//每页行数 public int page { get; set; }//当前页是第几页 public string order { get; set; }//排序方式 public string sort { get; set; }//排序列 public int totalRows { get; set; }//总行数 public int totalPages //总页数 { get { return (int)Math.Ceiling((float)totalRows / (float)rows); } } }
2、新建SortingAndPaging类
添加引入:using System.Linq.Expressions;
using System.Reflection;
public class SortingAndPaging { /// <summary> /// 排序 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="source"></param> /// <param name="sortExpression"></param> /// <param name="sortDirection"></param> /// <returns></returns> public static IQueryable<T> DataSorting<T>(IQueryable<T> source, string sortExpression, string sortDirection) { string sortingDir = string.Empty; if (sortDirection.ToUpper().Trim() == "ASC") sortingDir = "OrderBy"; else if (sortDirection.ToUpper().Trim() == "DESC") sortingDir = "OrderByDescending"; ParameterExpression param = Expression.Parameter(typeof(T), sortExpression); PropertyInfo pi = typeof(T).GetProperty(sortExpression); Type[] types = new Type[2]; types[0] = typeof(T); types[1] = pi.PropertyType; Expression expr = Expression.Call(typeof(Queryable), sortingDir, types, source.Expression, Expression.Lambda(Expression.Property(param, sortExpression), param)); IQueryable<T> query = source.AsQueryable().Provider.CreateQuery<T>(expr); return query; } /// <summary> /// 分页 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="source"></param> /// <param name="pageNumber"></param> /// <param name="pageSize"></param> /// <returns></returns> public static IQueryable<T> DataPaging<T>(IQueryable<T> source, int pageNumber, int pageSize) { if (pageNumber <= 1) { return source.Take(pageSize); } else { return source.Skip((pageNumber - 1) * pageSize).Take(pageSize); } } /// <summary> /// 排序并分页 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="source"></param> /// <param name="sortExpression"></param> /// <param name="sortDirection"></param> /// <param name="pageNumber"></param> /// <param name="pageSize"></param> /// <returns></returns> public static IQueryable<T> SortingPaging<T>(IQueryable<T> source, string sortExpression, string sortDirection, int pageNumber, int pageSize) { IQueryable<T> query = DataSorting<T>(source, sortExpression, sortDirection); return DataPaging(query, pageNumber, pageSize); } }
3、新建Suggestion类(静态类)
public static class Suggestion { public static string PlaseChooseToOperatingRecords { get { return "请选择要操作的记录"; } } public static string AreYouLogOff { get { return "您确定要注销系统吗?"; } } public static string Cancel { get { return "取消"; } } public static string CanNotOperationHasTheAudit { get { return "不能操作已经审核的记录"; } } public static string Check { get { return "审核"; } } public static string CheckFail { get { return "审核失败"; } } public static string CheckSucceed { get { return "审核成功"; } } public static string ClearLossJobs { get { return "清理离线任务"; } } public static string Close { get { return "关闭"; } } public static string CloseAll { get { return "关闭全部"; } } public static string CloseLeft { get { return "关闭左侧标签"; } } public static string CloseOther { get { return "除此之外全部关闭"; } } public static string CloseRight { get { return "关闭右侧标签"; } } public static string Create { get { return "创建"; } } public static string Delete { get { return "删除"; } } public static string DeleteFail { get { return "删除失败"; } } public static string DeleteSucceed { get { return "删除成功"; } } public static string Details { get { return "详细"; } } public static string Disable { get { return "不可用"; } } public static string Edit { get { return "编辑"; } } public static string EditFail { get { return "修改失败"; } } public static string EditSucceed { get { return "修改成功"; } } public static string Export { get { return "导出"; } } public static string InsertFail { get { return "创建失败"; } } public static string InsertSucceed { get { return "创建成功"; } } public static string Loading { get { return "加载中"; } } public static string LoginSucceed { get { return "登录成功,您可以继续操作!"; } } public static string LogOff { get { return "安全退出"; } } public static string NoAnyChanges { get { return "没有作任何修改"; } } public static string Operate { get { return "操作"; } } public static string PrimaryRepeat { get { return "主键重复"; } } public static string Query { get { return "查询"; } } public static string Reload { get { return "刷新"; } } public static string Return { get { return "返回"; } } public static string Save { get { return "保存"; } } public static string Select { get { return "选择"; } } public static string SetFail { get { return "设置失败"; } } public static string SetSucceed { get { return "设置成功"; } } public static string SwitchingSkin { get { return "切换主题,系统将重新加载?"; } } public static string Tip { get { return "提示"; } } public static string UnCheck { get { return "反审核"; } } public static string UnCheckFail { get { return "反审核失败"; } } public static string UnCheckSucceed { get { return "反审核成功"; } } public static string UnSelect { get { return "反选"; } } public static string Update { get { return "更新"; } } public static string UpdateFail { get { return "更新失败"; } } public static string UpdateSucceed { get { return "更新成功"; } } public static string UpLoad { get { return "上传"; } } public static string UserTimeOver { get { return "用户登录超时,请重新登录"; } } public static string Welcome { get { return "您好,欢迎您"; } } public static string YouCanOnlyOperateARecord { get { return "一次只能操作一条记录"; } } public static string YouWantToDeleteTheSelectedRecords { get { return "您确定要删除所选记录吗?"; } } }
4、新建ValidationError类
public class ValidationError { public ValidationError() { } public string ErrorMessage { get; set; } } public class ValidationErrors : List<ValidationError> { /// <summary> /// 添加错误 /// </summary> /// <param name="errorMessage">信息描述</param> public void Add(string errorMessage) { base.Add(new ValidationError { ErrorMessage = errorMessage }); } /// <summary> /// 获取错误集合 /// </summary> public string Error { get { string error = ""; this.All(a => { error += a.ErrorMessage; return true; }); return error; } } }