/// <summary>
        /// 对增删查改页面使用的Ajax表格操作列进行标准的设置
        /// 添加以下按钮
        /// - 查看(如果编辑Url不是空,且数据未删除)
        /// - 删除(如果批量Url不是空,且数据未删除)
        /// - 恢复(如果批量Url不是空,且数据已删除)
        /// - 永久删除(如果批量Url不是空,且数据已删除)
        /// </summary>
        /// <typeparam name="TCrudController">控制器的类型</typeparam>
        /// <param name="column">操作列</param>
        /// <param name="request">搜索请求</param>
        public static void StandardSetupFor <TCrudController>(
            this AjaxTableActionColumn column, AjaxTableSearchRequest request)
            where TCrudController : class, ICrudController, new()
        {
            var app     = new TCrudController();
            var deleted = request.Conditions.GetOrDefault <bool>("Deleted");

            if (!string.IsNullOrEmpty(app.EditUrl) && !deleted)
            {
                column.AddEditActionFor <TCrudController>();
            }
            if (!string.IsNullOrEmpty(app.BatchUrl))
            {
                if (!deleted && app.AllowDeleteRecover)
                {
                    column.AddDeleteActionFor <TCrudController>();
                }
                if (deleted && app.AllowDeleteRecover)
                {
                    column.AddRecoverActionFor <TCrudController>();
                }
                if (deleted && app.AllowDeleteForever)
                {
                    column.AddDeleteForeverActionFor <TCrudController>();
                }
            }
        }
Пример #2
0
        /// <summary>
        /// 对增删查改页面使用的Ajax表格操作列进行标准的设置
        /// 添加以下按钮
        /// - 查看按钮(如果编辑Url不是空)
        /// </summary>
        /// <typeparam name="TBuilder">构建器的类型</typeparam>
        /// <param name="column">操作列</param>
        /// <param name="request">搜索请求</param>
        public static void StandardSetupForCrudPage <TBuilder>(
            this AjaxTableActionColumn column, AjaxTableSearchRequest request)
            where TBuilder : class, ICrudPageBuilder, new()
        {
            var app = new TBuilder();

            if (!string.IsNullOrEmpty(app.EditUrl))
            {
                column.AddEditActionForCrudPage <TBuilder>();
            }
        }
Пример #3
0
        /// <summary>
        /// 添加查看按钮
        /// 点击后弹出编辑数据的模态框
        /// 根据增删查改页面的构建器自动生成,各个参数如不指定则使用默认值
        /// </summary>
        /// <typeparam name="TBuilder">后台应用的类型</typeparam>
        public static void AddEditActionForCrudPage <TBuilder>(
            this AjaxTableActionColumn column,
            string name          = null, string buttonClass = null, string iconClass = null,
            string titleTemplate = null, string urlTemplate = null, object dialogParameters = null)
            where TBuilder : class, ICrudPageBuilder, new()
        {
            var app = new TBuilder();

            column.AddEditAction(app.DataTypeName, app.EditUrl,
                                 name, buttonClass, iconClass, titleTemplate, urlTemplate, dialogParameters);
        }
Пример #4
0
 /// <summary>
 /// 添加查看按钮
 /// 点击后弹出编辑数据的模态框
 /// </summary>
 /// <param name="column">操作列</param>
 /// <param name="typeName">类型名称</param>
 /// <param name="editUrl">编辑使用的Url</param>
 /// <param name="name">名称,不指定时使用默认值</param>
 /// <param name="buttonClass">按钮的Css类,不指定时使用默认值</param>
 /// <param name="iconClass">图标的Css类,不指定时使用默认值</param>
 /// <param name="titleTemplate">标题的模板,格式是underscore.js的格式,参数传入row</param>
 /// <param name="urlTemplate">编辑Url的模板,格式是underscore.js的格式,参数传入row</param>
 /// <param name="dialogParameters">弹出框的参数,不指定时使用默认值</param>
 public static void AddEditAction(
     this AjaxTableActionColumn column, string typeName, string editUrl,
     string name          = null, string buttonClass = null, string iconClass = null,
     string titleTemplate = null, string urlTemplate = null, object dialogParameters = null)
 {
     column.AddRemoteModalForBelongedRow(
         name ?? new T("View"),
         buttonClass ?? "btn btn-xs btn-info",
         iconClass ?? "fa fa-edit",
         titleTemplate ?? string.Format(new T("Edit {0}"), new T(typeName)),
         urlTemplate ?? (editUrl + "?id=<%-row.Id%>"),
         dialogParameters);
 }
        /// <summary>
        /// 添加删除按钮
        /// 根据增删查改的控制器自动生成,各个参数如不指定则使用默认值
        /// </summary>
        /// <typeparam name="TCrudController">控制器类型</typeparam>
        public static void AddDeleteActionFor <TCrudController>(
            this AjaxTableActionColumn column,
            string name          = null, string buttonClass      = null, string iconClass = null,
            string titleTemplate = null, string urlTemplate      = null,
            string primaryKey    = null, object dialogParameters = null)
            where TCrudController : class, ICrudController, new()
        {
            var app = new TCrudController();

            column.AddDeleteAction(app.EntityTypeName,
                                   app.BatchUrl + "?action=delete", name, buttonClass, iconClass,
                                   titleTemplate, urlTemplate, primaryKey, dialogParameters);
        }
Пример #6
0
 /// <summary>
 /// 添加删除按钮
 /// 点击后弹出确认框,确认后把json=[数据Id]提交到删除url
 /// </summary>
 /// <param name="column">操作列</param>
 /// <param name="typeName">类型名称</param>
 /// <param name="deleteUrl">删除使用的Url</param>
 /// <param name="name">名称,不指定时使用默认值</param>
 /// <param name="buttonClass">按钮的Css类,不指定时使用默认值</param>
 /// <param name="iconClass">图标的Css类,不指定时使用默认值</param>
 /// <param name="titleTemplate">标题的模板,格式是underscore.js的格式,参数传入rows</param>
 /// <param name="urlTemplate">编辑Url的模板,格式是underscore.js的格式,参数传入rows</param>
 /// <param name="primaryKey">数据Id保存的名称,不指定时使用默认值</param>
 /// <param name="dialogParameters">弹出框的参数,不指定时使用默认值</param>
 public static void AddDeleteAction(
     this AjaxTableActionColumn column, string typeName, string deleteUrl,
     string name          = null, string buttonClass      = null, string iconClass = null,
     string titleTemplate = null, string urlTemplate      = null,
     string primaryKey    = null, object dialogParameters = null)
 {
     primaryKey = primaryKey ?? EntityTrait.For <object>().PrimaryKey;
     column.AddConfirmActionForBelongedRow(
         name ?? new T("Delete"),
         buttonClass ?? "btn btn-xs btn-danger",
         iconClass ?? "fa fa-remove",
         titleTemplate ?? string.Format(new T("Delete {0}"), new T(typeName)),
         ScriptStrings.ConfirmMessageTemplateForMultiSelected(
             string.Format(new T("Sure to delete following {0}?"), new T(typeName)), "ToString"),
         ScriptStrings.PostConfirmedActionForMultiSelected(primaryKey, deleteUrl),
         dialogParameters);
 }
 /// <summary>
 /// 添加永久删除按钮
 /// 点击后弹出确认框,确认后把json=[数据Id]提交到永久删除url
 /// </summary>
 /// <param name="column">操作列</param>
 /// <param name="typeName">类型名称</param>
 /// <param name="deleteForeverUrl">永久删除使用的Url</param>
 /// <param name="name">名称,不指定时使用默认值</param>
 /// <param name="buttonClass">按钮的Css类,不指定时使用默认值</param>
 /// <param name="iconClass">图标的Css类,不指定时使用默认值</param>
 /// <param name="titleTemplate">标题的模板,格式是underscore.js的格式,参数传入rows</param>
 /// <param name="urlTemplate">编辑Url的模板,格式是underscore.js的格式,参数传入rows</param>
 /// <param name="primaryKey">数据Id保存的名称,不指定时使用默认值</param>
 /// <param name="dialogParameters">弹出框的参数,不指定时使用默认值</param>
 public static void AddDeleteForeverAction(
     this AjaxTableActionColumn column, string typeName, string deleteForeverUrl,
     string name          = null, string buttonClass      = null, string iconClass = null,
     string titleTemplate = null, string urlTemplate      = null,
     string primaryKey    = null, object dialogParameters = null)
 {
     primaryKey = primaryKey ?? nameof(IEntity <Guid> .Id);
     column.AddConfirmActionForBelongedRow(
         name ?? new T("Delete Forever"),
         buttonClass ?? "btn btn-xs btn-danger",
         iconClass ?? "fa fa-remove",
         titleTemplate ?? string.Format(new T("Delete {0} Forever"), new T(typeName)),
         BaseScriptStrings.ConfirmMessageTemplateForMultiSelected(
             string.Format(new T("Sure to delete following {0} forever?"), new T(typeName)), "ToString"),
         BaseScriptStrings.PostConfirmedActionForMultiSelected(primaryKey, deleteForeverUrl),
         dialogParameters ?? new { type = "type-danger" });
 }
 /// <summary>
 /// 添加恢复按钮
 /// 点击后弹出确认框,确认后把json=[数据Id]提交到恢复url
 /// </summary>
 /// <param name="column">操作列</param>
 /// <param name="typeName">类型名称</param>
 /// <param name="recoverUrl">恢复使用的Url</param>
 /// <param name="name">名称,不指定时使用默认值</param>
 /// <param name="buttonClass">按钮的Css类,不指定时使用默认值</param>
 /// <param name="iconClass">图标的Css类,不指定时使用默认值</param>
 /// <param name="titleTemplate">标题的模板,格式是underscore.js的格式,参数传入rows</param>
 /// <param name="urlTemplate">编辑Url的模板,格式是underscore.js的格式,参数传入rows</param>
 /// <param name="primaryKey">数据Id保存的名称,不指定时使用默认值</param>
 /// <param name="dialogParameters">弹出框的参数,不指定时使用默认值</param>
 public static void AddRecoverAction(
     this AjaxTableActionColumn column, string typeName, string recoverUrl,
     string name          = null, string buttonClass      = null, string iconClass = null,
     string titleTemplate = null, string urlTemplate      = null,
     string primaryKey    = null, object dialogParameters = null)
 {
     primaryKey = primaryKey ?? nameof(IEntity <Guid> .Id);
     column.AddConfirmActionForBelongedRow(
         name ?? new T("Recover"),
         buttonClass ?? "btn btn-xs btn-info",
         iconClass ?? "fa fa-history",
         titleTemplate ?? string.Format(new T("Recover {0}"), new T(typeName)),
         BaseScriptStrings.ConfirmMessageTemplateForMultiSelected(
             string.Format(new T("Sure to recover following {0}?"), new T(typeName)), "ToString"),
         BaseScriptStrings.PostConfirmedActionForMultiSelected(primaryKey, recoverUrl),
         dialogParameters);
 }