/// <summary> /// 创建标准动作 /// </summary> /// <typeparam name="T">继承自TopBasePoco的类</typeparam> /// <typeparam name="V">继承自ISearcher的类</typeparam> /// <param name="self">self</param> /// <param name="controllerName">动作的Controller</param> /// <param name="standardType">标准动作类型</param> /// <param name="dialogTitle">弹出窗口的标题</param> /// <param name="areaName">域名</param> /// <param name="dialogWidth">弹出窗口的宽度</param> /// <param name="dialogHeight">弹出窗口的高度</param> /// <param name="name">动作名,默认为‘新建’</param> /// <param name="buttonId">Button的id 默认自动生成</param> /// <param name="whereStr">whereStr</param> /// <returns>列表动作</returns> /// <remarks> /// 根据标准动作类型,创建默认属性的标准动作 /// </remarks> public static GridAction MakeStandardAction <T, V>(this IBasePagedListVM <T, V> self , string controllerName , GridActionStandardTypesEnum standardType , string dialogTitle , string areaName = null , int?dialogWidth = null , int?dialogHeight = null , string name = null , string buttonId = null , string queryString = null , string urlParampter = null , params Expression <Func <T, object> >[] whereStr) where T : TopBasePoco where V : ISearcher { var iconcls = string.Empty; var actionName = standardType.ToString(); var gridname = string.Empty; var paraType = GridActionParameterTypesEnum.NoId; var showInRow = false; var hideOnToolBar = false; switch (standardType) { case GridActionStandardTypesEnum.Create: iconcls = "layui-icon-add-1"; gridname = "新建"; paraType = GridActionParameterTypesEnum.NoId; break; case GridActionStandardTypesEnum.AddRow: iconcls = "layui-icon-add-1"; gridname = "新建"; paraType = GridActionParameterTypesEnum.AddRow; break; case GridActionStandardTypesEnum.Edit: iconcls = "layui-icon-edit"; gridname = "修改"; paraType = GridActionParameterTypesEnum.SingleId; showInRow = true; hideOnToolBar = true; break; case GridActionStandardTypesEnum.Delete: iconcls = "layui-icon-delete"; gridname = "删除"; paraType = GridActionParameterTypesEnum.SingleId; showInRow = true; hideOnToolBar = true; break; case GridActionStandardTypesEnum.RemoveRow: iconcls = "layui-icon-delete"; gridname = "删除"; paraType = GridActionParameterTypesEnum.RemoveRow; showInRow = true; hideOnToolBar = true; break; case GridActionStandardTypesEnum.Details: iconcls = "layui-icon-form"; gridname = string.IsNullOrEmpty(name) ? "详细" : name; paraType = GridActionParameterTypesEnum.SingleId; showInRow = true; hideOnToolBar = true; break; case GridActionStandardTypesEnum.CustomAction: iconcls = "layui-icon-form"; gridname = string.IsNullOrEmpty(name) ? "自定义" : name; paraType = GridActionParameterTypesEnum.SingleId; showInRow = true; hideOnToolBar = true; break; case GridActionStandardTypesEnum.BatchEdit: iconcls = "layui-icon-edit"; gridname = "批量修改"; paraType = GridActionParameterTypesEnum.MultiIds; break; case GridActionStandardTypesEnum.BatchDelete: iconcls = "layui-icon-delete"; gridname = "批量删除"; paraType = GridActionParameterTypesEnum.MultiIds; break; case GridActionStandardTypesEnum.Import: iconcls = "layui-icon-templeate-1"; gridname = "导入"; paraType = GridActionParameterTypesEnum.NoId; break; case GridActionStandardTypesEnum.Index: iconcls = "layui-icon-templeate-1"; gridname = name == string.Empty?"跳转":name; paraType = GridActionParameterTypesEnum.IndexUrl; showInRow = true; hideOnToolBar = true; break; default: break; } var list = new List <string>(); foreach (var item in whereStr) { list.Add(PropertyHelper.GetPropertyName(item)); } return(new GridAction { ButtonId = buttonId, Name = (name ?? gridname), DialogTitle = dialogTitle, Area = areaName, ControllerName = controllerName, ActionName = actionName, ParameterType = paraType, QueryString = queryString, UrlParam = urlParampter, IconCls = iconcls, DialogWidth = dialogWidth ?? 800, DialogHeight = dialogHeight, ShowInRow = showInRow, ShowDialog = true, HideOnToolBar = hideOnToolBar, whereStr = list.ToArray() }); }
/// <summary> /// 创建标准动作 /// </summary> /// <typeparam name="T">继承自TopBasePoco的类</typeparam> /// <typeparam name="V">继承自ISearcher的类</typeparam> /// <param name="self">self</param> /// <param name="controllerName">动作的Controller</param> /// <param name="standardType">标准动作类型</param> /// <param name="dialogTitle">弹出窗口的标题,可为空,代表使用默认文字</param> /// <param name="areaName">域名</param> /// <param name="dialogWidth">弹出窗口的宽度</param> /// <param name="dialogHeight">弹出窗口的高度</param> /// <param name="name">按钮显示的文字</param> /// <param name="buttonId">Button的id 默认自动生成</param> /// <param name="whereStr">whereStr</param> /// <returns>列表动作</returns> /// <remarks> /// 根据标准动作类型,创建默认属性的标准动作 /// </remarks> public static GridAction MakeStandardAction <T, V>(this IBasePagedListVM <T, V> self , string controllerName , GridActionStandardTypesEnum standardType , string dialogTitle , string areaName = null , int?dialogWidth = null , int?dialogHeight = null , string name = null , string buttonId = null , params Expression <Func <T, object> >[] whereStr) where T : TopBasePoco where V : ISearcher { var iconcls = string.Empty; var actionName = standardType.ToString(); var gridname = string.Empty; var paraType = GridActionParameterTypesEnum.NoId; var showInRow = false; var hideOnToolBar = false; var showDialog = true; switch (standardType) { case GridActionStandardTypesEnum.Create: iconcls = "layui-icon layui-icon-add-1"; gridname = Program._localizer["Create"]; paraType = GridActionParameterTypesEnum.NoId; break; case GridActionStandardTypesEnum.AddRow: iconcls = "layui-icon layui-icon-add-1"; gridname = Program._localizer["Create"]; paraType = GridActionParameterTypesEnum.AddRow; break; case GridActionStandardTypesEnum.Edit: iconcls = "layui-icon layui-icon-edit"; gridname = Program._localizer["Edit"]; paraType = GridActionParameterTypesEnum.SingleId; showInRow = true; hideOnToolBar = true; break; case GridActionStandardTypesEnum.Delete: iconcls = "layui-icon layui-icon-delete"; gridname = Program._localizer["Delete"]; paraType = GridActionParameterTypesEnum.SingleId; showInRow = true; hideOnToolBar = true; break; case GridActionStandardTypesEnum.RemoveRow: iconcls = "layui-icon layui-icon-delete"; gridname = Program._localizer["Delete"]; paraType = GridActionParameterTypesEnum.RemoveRow; showInRow = true; hideOnToolBar = true; break; case GridActionStandardTypesEnum.Details: iconcls = "layui-icon layui-icon-form"; gridname = Program._localizer["Details"]; paraType = GridActionParameterTypesEnum.SingleId; showInRow = true; hideOnToolBar = true; break; case GridActionStandardTypesEnum.BatchEdit: iconcls = "layui-icon layui-icon-edit"; gridname = Program._localizer["BatchEdit"]; paraType = GridActionParameterTypesEnum.MultiIds; break; case GridActionStandardTypesEnum.BatchDelete: iconcls = "layui-icon layui-icon-delete"; gridname = Program._localizer["BatchDelete"]; paraType = GridActionParameterTypesEnum.MultiIds; break; case GridActionStandardTypesEnum.Import: iconcls = "layui-icon layui-icon-templeate-1"; gridname = Program._localizer["Import"]; paraType = GridActionParameterTypesEnum.NoId; break; case GridActionStandardTypesEnum.ExportExcel: iconcls = "layui-icon layui-icon-download-circle"; gridname = Program._localizer["Export"]; paraType = GridActionParameterTypesEnum.MultiIdWithNull; name = Program._localizer["ExportExcel"]; showInRow = false; showDialog = false; hideOnToolBar = false; break; default: break; } if (string.IsNullOrEmpty(dialogTitle)) { dialogTitle = gridname; } var list = new List <string>(); foreach (var item in whereStr) { list.Add(PropertyHelper.GetPropertyName(item)); } return(new GridAction { ButtonId = buttonId, Name = (name ?? gridname), DialogTitle = dialogTitle, Area = areaName, ControllerName = controllerName, ActionName = actionName, ParameterType = paraType, IconCls = iconcls, DialogWidth = dialogWidth ?? 800, DialogHeight = dialogHeight, ShowInRow = showInRow, ShowDialog = showDialog, HideOnToolBar = hideOnToolBar, whereStr = list.ToArray() }); }