示例#1
0
            /// <summary>
            /// 添加列和操作
            /// </summary>
            public override void OnResponse(
                AjaxTableSearchRequest request, AjaxTableSearchResponse response)
            {
                response.Columns.AddIdColumn("Id").StandardSetupFor <ProductCrudController>(request);
                response.Columns.AddNoColumn();
                response.Columns.AddHtmlColumn("Name", "30%");
                response.Columns.AddMemberColumn("Price");
                response.Columns.AddMemberColumn("Stock");
                response.Columns.AddMemberColumn("CreateTime");
                response.Columns.AddMemberColumn("UpdateTime");
                response.Columns.AddMemberColumn("Type");
                response.Columns.AddMemberColumn("State");
                response.Columns.AddEditColumnFor <UserCrudController>("Seller", "SellerId");
                response.Columns.AddMemberColumn("DisplayOrder");
                response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));
                var actionColumn = response.Columns.AddActionColumn("150");
                var deleted      = request.Conditions.GetOrDefault <bool>("Deleted");

                if (!deleted)
                {
                    actionColumn.AddButtonForOpenLink(new T("Preview"),
                                                      "btn btn-xs btn-success", "fa fa-eye", "/product/view?id=<%-row.Id%>", "_blank");
                }
                actionColumn.StandardSetupFor <ProductCrudController>(request);
            }
 public override void OnResponse(AjaxTableSearchRequest request, AjaxTableSearchResponse response)
 {
     response.Columns.AddIdColumn("Id");
     response.Columns.AddMemberColumn("Name");
     response.Columns.AddMemberColumn("CreateTime");
     response.Columns.AddMemberColumn("UpdateTime");
 }
示例#3
0
		public virtual IActionResult SearchAction() {
			// 获取搜索请求
			var json = Request.Get<string>("json");
			var request = AjaxTableSearchRequest.FromJson(json);
			// 搜索图片列表
			// 分页时如果没有结果,使用最后一页的结果
			var imageManager = Application.Ioc.Resolve<ImageManager>();
			var names = imageManager.Query(CategoryLower);
			if (!string.IsNullOrEmpty(request.Keyword)) {
				names = names.Where(name => name.Contains(request.Keyword)).ToList();
			}
			var response = new AjaxTableSearchResponse();
			var result = response.Pagination.Paging(request, names.AsQueryable());
			// 返回搜索结果
			response.PageNo = request.PageNo;
			response.PageSize = request.PageSize;
			response.Rows.AddRange(result.Select(name => {
				var path = imageManager.GetImageWebPath(
					CategoryLower, name, imageManager.ImageExtension);
				var thumbnailPath = imageManager.GetImageWebPath(
					CategoryLower, name, imageManager.ImageThumbnailExtension);
				var storageFile = imageManager.GetImageStorageFile(
					CategoryLower, name, imageManager.ImageExtension);
				var lastWriteTime = storageFile.LastWriteTimeUtc.ToClientTimeString();
				var fileSize = FileUtils.GetSizeDisplayName(storageFile.Length);
				return new Dictionary<string, object>() {
					{ "name", name },
					{ "path", path },
					{ "thumbnailPath", thumbnailPath },
					{ "lastWriteTime", lastWriteTime },
					{ "fileSize", fileSize }
				};
			}));
			return new JsonResult(response);
		}
            /// <summary>
            /// 添加列和操作
            /// </summary>
            public override void OnResponse(
                AjaxTableSearchRequest request, AjaxTableSearchResponse response)
            {
                var idColumn = response.Columns.AddIdColumn("Id");

                idColumn.StandardSetupFor <BuyerOrderCrudController>(request);
                response.Columns.AddHtmlColumn("OrderProducts", "30%");
                response.Columns.AddHtmlColumn("Price", "70");
                response.Columns.AddHtmlColumn("Quantity", "70");
                response.Columns.AddHtmlColumn("ShippedQuantity", "70");
                response.Columns.AddHtmlColumn("TotalCost", "70");
                response.Columns.AddEnumLabelColumn("State", typeof(OrderState), "50");
                response.Columns.AddMemberColumn("Seller", "70");
                response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted), "70");
                var actionColumn = response.Columns.AddActionColumn("5%");
                var deleted      = request.Conditions.GetOrDefault <bool>("Deleted");

                if (!deleted)
                {
                    idColumn.AddConfirmActionForMultiChecked(
                        new T("MergePayment"),
                        "fa fa-credit-card",
                        new T("Please select orders to merge payment"),
                        new T("MergePayment"),
                        BaseScriptStrings.ConfirmMessageTemplateForMultiSelected(
                            new T("Sure to merge following order's payment?"), "ToString"),
                        BaseScriptStrings.PostConfirmedActionForMultiSelected(
                            "Serial", "/user/orders/merge_payment"));
                    actionColumn.AddButtonForOpenLink(
                        new T("View"), "btn btn-xs btn-info", "fa fa-edit",
                        "/user/orders/edit?serial=<%-row.Serial%>");
                }
                actionColumn.AddHtmlAction("OrderActions");
            }
示例#5
0
 /// <summary>
 /// 构建回应
 /// </summary>
 public override void OnResponse(
     AjaxTableSearchRequest request, AjaxTableSearchResponse response)
 {
     response.Columns.AddIdColumn("Id");
     response.Columns.AddMemberColumn("Username");
     response.Columns.AddMemberColumn("Rank");
     response.Columns.AddMemberColumn("RankDescription");
     response.Columns.AddMemberColumn("Comment");
     response.Columns.AddMemberColumn("CreateTime");
 }
示例#6
0
 public override void OnResponse(
     AjaxTableSearchRequest request, AjaxTableSearchResponse response)
 {
     response.Columns.AddIdColumn("Id").StandardSetupFor <ExampleCrudController>(request); // Id列
     response.Columns.AddNoColumn();                                                       // 序号列,页序号*页数量+数据位置(从1开始)
     response.Columns.AddMemberColumn("Name", "45%");                                      // 名称列
     response.Columns.AddMemberColumn("CreateTime");                                       // 添加时间列
     response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));                  // 删除状态列
     response.Columns.AddActionColumn().StandardSetupFor <ExampleCrudController>(request); // 操作列
 }
示例#7
0
 /// <summary>
 /// 添加列和批量操作
 /// </summary>
 public void OnResponse(
     AjaxTableSearchRequest request, AjaxTableSearchResponse response)
 {
     response.Columns.AddIdColumn("Id").StandardSetupForCrudPage <RoleManageApp>(request);
     response.Columns.AddNoColumn();
     response.Columns.AddMemberColumn("Name", "45%");
     response.Columns.AddMemberColumn("CreateTime");
     response.Columns.AddMemberColumn("LastUpdated");
     response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));
     response.Columns.AddActionColumn().StandardSetupForCrudPage <RoleManageApp>(request);
 }
        public void OnResponse(AjaxTableSearchRequest request, AjaxTableSearchResponse response)
        {
            var usernameColumn = response.Columns.FirstOrDefault(c => c.Key == "Username");

            if (usernameColumn != null)
            {
                usernameColumn.Width = "35%";
            }
            response.Columns.MoveAfter(response.Columns.AddMemberColumn("Tel"), "Username");
            response.Columns.MoveAfter(response.Columns.AddMemberColumn("Mobile"), "Tel");
        }
        /// <summary>
        /// 从领域服务提供的数据构建搜索回应
        /// 支持自动分页和配合表格处理器设置结果
        /// </summary>
        /// <typeparam name="TEntity">实体类型</typeparam>
        /// <typeparam name="TPrimaryKey">主键类型</typeparam>
        /// <param name="request">搜索请求</param>
        /// <param name="handlers">表格处理器</param>
        /// <returns></returns>
        public static AjaxTableSearchResponse BuildResponse <TEntity, TPrimaryKey>(
            this AjaxTableSearchRequest request,
            IEnumerable <IAjaxTableHandler <TEntity, TPrimaryKey> > handlers)
            where TEntity : class, IEntity <TPrimaryKey>
        {
            var uow         = Application.Ioc.Resolve <IUnitOfWork>();
            var response    = new AjaxTableSearchResponse();
            var service     = Application.Ioc.Resolve <IDomainService <TEntity, TPrimaryKey> >();
            var queryMethod = new Func <IList <TEntity> >(() => service.GetMany(query => {
                // 从服务获取数据,过滤并排序
                foreach (var handler in handlers)
                {
                    handler.OnQuery(request, ref query);
                }
                foreach (var handler in handlers)
                {
                    handler.OnSort(request, ref query);
                }
                // 分页并设置分页信息
                // 当前页没有任何内容时返回最后一页的数据
                return(response.Pagination.Paging(request, query));
            }));

            foreach (var handler in handlers)
            {
                // 包装查询函数
                queryMethod = handler.WrapQueryMethod(request, queryMethod);
            }
            using (uow.Scope()) {
                // 查询数据
                var result = queryMethod();
                // 设置当前页和每页数量
                response.PageNo   = request.PageNo;
                response.PageSize = request.PageSize;
                // 选择数据
                // 默认把对象转换到的字符串保存到ToString中
                var pairs = result.Select(r => new EntityToTableRow <TEntity>(r)).ToList();
                foreach (var pair in pairs)
                {
                    pair.Row["ToString"] = pair.Entity.ToString();
                }
                foreach (var handler in handlers)
                {
                    handler.OnSelect(request, pairs);
                }
                response.Rows = pairs.Select(p => p.Row).ToList();
                // 调用返回搜索回应前的处理器,这里会添加需要的列
                foreach (var handler in handlers)
                {
                    handler.OnResponse(request, response);
                }
            }
            return(response);
        }
示例#10
0
 /// <summary>
 /// 添加列和批量操作
 /// </summary>
 public override void OnResponse(
     AjaxTableSearchRequest request, AjaxTableSearchResponse response)
 {
     response.Columns.AddIdColumn("Id").StandardSetupFor <UserRoleCrudController>(request);
     response.Columns.AddNoColumn();
     response.Columns.AddMemberColumn("Name", "45%");
     response.Columns.AddMemberColumn("CreateTime");
     response.Columns.AddMemberColumn("UpdateTime");
     response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));
     response.Columns.AddActionColumn().StandardSetupFor <UserRoleCrudController>(request);
 }
 /// <summary>
 /// 添加列和操作
 /// </summary>
 public void OnResponse(
     AjaxTableSearchRequest request, AjaxTableSearchResponse response)
 {
     response.Columns.AddIdColumn("Id").StandardSetupForCrudPage <UserShippingAddressManage>(request);
     response.Columns.AddNoColumn();
     response.Columns.AddMemberColumn("ShippingAddress", "40%");
     response.Columns.AddMemberColumn("CreateTime");
     response.Columns.AddMemberColumn("LastUpdated");
     response.Columns.AddMemberColumn("DisplayOrder");
     response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));
     response.Columns.AddActionColumn().StandardSetupForCrudPage <UserShippingAddressManage>(request);
 }
示例#12
0
 /// <summary>
 /// 添加列和操作
 /// </summary>
 public override void OnResponse(
     AjaxTableSearchRequest request, AjaxTableSearchResponse response)
 {
     response.Columns.AddIdColumn("Id").StandardSetupFor <ShippingAddressCrudController>(request);
     response.Columns.AddNoColumn();
     response.Columns.AddMemberColumn("ShippingAddress", "40%");
     response.Columns.AddMemberColumn("CreateTime");
     response.Columns.AddMemberColumn("UpdateTime");
     response.Columns.AddMemberColumn("DisplayOrder");
     response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));
     response.Columns.AddActionColumn().StandardSetupFor <ShippingAddressCrudController>(request);
 }
示例#13
0
 /// <summary>
 /// 添加列和批量操作
 /// </summary>
 public void OnResponse(
     AjaxTableSearchRequest request, AjaxTableSearchResponse response)
 {
     response.Columns.AddIdColumn("Id").StandardSetupForCrudPage <AdminManageApp>(request);
     response.Columns.AddNoColumn();
     response.Columns.AddImageColumn("Avatar");
     response.Columns.AddMemberColumn("Username", "45%");
     response.Columns.AddMemberColumn("Roles");
     response.Columns.AddMemberColumn("CreateTime");
     response.Columns.AddEnumLabelColumn("SuperAdmin", typeof(EnumBool));
     response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));
     response.Columns.AddActionColumn().StandardSetupForCrudPage <AdminManageApp>(request);
 }
 /// <summary>
 /// 添加列和操作
 /// </summary>
 public void OnResponse(AjaxTableSearchRequest request, AjaxTableSearchResponse response)
 {
     response.Columns.AddIdColumn("Id").StandardSetupForCrudPage <LogisticsManageApp>(request);
     response.Columns.AddNoColumn();
     response.Columns.AddHtmlColumn("Name", "30%");
     response.Columns.AddMemberColumn("Type");
     response.Columns.AddEditColumnForCrudPage <UserManageApp>("Owner", "OwnerId");
     response.Columns.AddMemberColumn("CreateTime");
     response.Columns.AddMemberColumn("LastUpdated");
     response.Columns.AddMemberColumn("DisplayOrder");
     response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));
     response.Columns.AddActionColumn().StandardSetupForCrudPage <LogisticsManageApp>(request);
 }
示例#15
0
 /// <summary>
 /// 添加列和操作
 /// </summary>
 public override void OnResponse(
     AjaxTableSearchRequest request, AjaxTableSearchResponse response)
 {
     response.Columns.AddIdColumn("Id").StandardSetupFor <ProductPropertyCrudController>(request);
     response.Columns.AddNoColumn();
     response.Columns.AddMemberColumn("Name", "15%");
     response.Columns.AddEnumLabelColumn("IsSalesProperty", typeof(EnumBool));
     response.Columns.AddMemberColumn("ControlType");
     response.Columns.AddMemberColumn("PropertyValues", "20%");
     response.Columns.AddMemberColumn("CreateTime");
     response.Columns.AddMemberColumn("UpdateTime");
     response.Columns.AddMemberColumn("DisplayOrder");
     response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));
     response.Columns.AddActionColumn().StandardSetupFor <ProductPropertyCrudController>(request);
 }
示例#16
0
            /// <summary>
            /// 添加列和操作
            /// </summary>
            public override void OnResponse(
                AjaxTableSearchRequest request, AjaxTableSearchResponse response)
            {
                response.Columns.AddIdColumn("Id").StandardSetupFor <ProductBookmarkCrudController>(request);
                response.Columns.AddNoColumn();
                response.Columns.AddHtmlColumn("Name", "30%");
                response.Columns.AddMemberColumn("Price");
                response.Columns.AddMemberColumn("Seller");
                response.Columns.AddMemberColumn("BookmarkTime");
                var actionColumn = response.Columns.AddActionColumn("5%");

                actionColumn.AddButtonForOpenLink(new T("View"),
                                                  "btn btn-xs btn-success", "fa fa-eye", "/product/view?id=<%-row.ProductId%>", "_blank");
                actionColumn.StandardSetupFor <ProductBookmarkCrudController>(request);
            }
            /// <summary>
            /// 添加列和操作
            /// </summary>
            public void OnResponse(
                AjaxTableSearchRequest request, AjaxTableSearchResponse response)
            {
                var idColumn = response.Columns.AddIdColumn("Id");

                response.Columns.AddTreeNodeColumn("Name", "Level", "NoChilds");
                response.Columns.AddMemberColumn("CreateTime");
                response.Columns.AddMemberColumn("DisplayOrder");
                response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));
                var actionColumn = response.Columns.AddActionColumn();

                actionColumn.AddEditAction(
                    Builder.Type, Builder.EditUrl, dialogParameters: new { size = "size-wide" });
                idColumn.AddDivider();
                idColumn.AddDeleteActions(
                    request, typeof(Database.GenericClass), Builder.Type, Builder.BatchUrl);
            }
示例#18
0
 /// <summary>
 /// 添加列
 /// </summary>
 public void OnResponse(
     AjaxTableSearchRequest request, AjaxTableSearchResponse response)
 {
     response.Columns.AddIdColumn("Id").StandardSetupForCrudPage <PaymentTransactionRecordsApp>(request);
     response.Columns.AddNoColumn();
     response.Columns.AddMemberColumn("Serial");
     response.Columns.AddMemberColumn("ExternalSerial");
     response.Columns.AddMemberColumn("Type");
     response.Columns.AddEditColumnForCrudPage <PaymentApiManageApp>("ApiName", "ApiId");
     response.Columns.AddMemberColumn("Amount");
     response.Columns.AddMemberColumn("PaymentFee");
     response.Columns.AddEditColumnForCrudPage <UserManageApp>("Payer", "PayerId");
     response.Columns.AddEditColumnForCrudPage <UserManageApp>("Payee", "PayeeId");
     response.Columns.AddMemberColumn("CreateTime");
     response.Columns.AddMemberColumn("LastUpdated");
     response.Columns.AddEnumLabelColumn("State", typeof(PaymentTransactionState));
     response.Columns.AddActionColumn().StandardSetupForCrudPage <PaymentTransactionRecordsApp>(request);
 }
示例#19
0
            /// <summary>
            /// 添加列和操作
            /// </summary>
            public void OnResponse(
                AjaxTableSearchRequest request, AjaxTableSearchResponse response)
            {
                response.Columns.AddIdColumn("Id").StandardSetupForCrudPage <ArticleManageApp>(request);
                response.Columns.AddNoColumn();
                response.Columns.AddMemberColumn("Title", "25%");
                response.Columns.AddEditColumnForCrudPage <UserManageApp>("Author", "AuthorId");
                response.Columns.AddMemberColumn("ArticleClass");
                response.Columns.AddMemberColumn("CreateTime");
                response.Columns.AddMemberColumn("LastUpdated");
                response.Columns.AddMemberColumn("DisplayOrder");
                response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));
                var actionColumn = response.Columns.AddActionColumn("150");

                actionColumn.AddButtonForOpenLink(new T("Preview"),
                                                  "btn btn-xs btn-success", "fa fa-eye", "/article/view?id=<%-row.Id%>", "_blank");
                actionColumn.StandardSetupForCrudPage <ArticleManageApp>(request);
            }
示例#20
0
 /// <summary>
 /// 添加列
 /// </summary>
 public override void OnResponse(
     AjaxTableSearchRequest request, AjaxTableSearchResponse response)
 {
     response.Columns.AddIdColumn("Id").StandardSetupFor <PaymentTransactionCrudController>(request);
     response.Columns.AddNoColumn();
     response.Columns.AddMemberColumn("Serial");
     response.Columns.AddMemberColumn("ExternalSerial");
     response.Columns.AddMemberColumn("Type");
     response.Columns.AddEditColumnFor <PaymentApiCrudController>("ApiName", "ApiId");
     response.Columns.AddMemberColumn("Amount");
     response.Columns.AddMemberColumn("PaymentFee");
     response.Columns.AddEditColumnFor <UserCrudController>("Payer", "PayerId");
     response.Columns.AddEditColumnFor <UserCrudController>("Payee", "PayeeId");
     response.Columns.AddMemberColumn("CreateTime");
     response.Columns.AddMemberColumn("UpdateTime");
     response.Columns.AddEnumLabelColumn("State", typeof(PaymentTransactionState));
     response.Columns.AddActionColumn().StandardSetupFor <PaymentTransactionCrudController>(request);
 }
            /// <summary>
            /// 添加列和操作
            /// </summary>
            public void OnResponse(AjaxTableSearchRequest request, AjaxTableSearchResponse response)
            {
                response.Columns.AddIdColumn("Id").StandardSetupForCrudPage <PaymentApiManageApp>(request);
                response.Columns.AddNoColumn();
                response.Columns.AddMemberColumn("Name", "35%");
                response.Columns.AddMemberColumn("Type");
                response.Columns.AddEditColumnForCrudPage <UserManageApp>("Owner", "OwnerId");
                response.Columns.AddMemberColumn("CreateTime");
                response.Columns.AddMemberColumn("LastUpdated");
                response.Columns.AddMemberColumn("DisplayOrder");
                response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));
                var actionColumn = response.Columns.AddActionColumn("155");

                actionColumn.AddButtonForOpenLink(
                    new T("TestPayment"), "btn btn-xs btn-warning", "fa fa-edit",
                    "/admin/payment_apis/test_payment?id=<%-row.Id%>");
                actionColumn.StandardSetupForCrudPage <PaymentApiManageApp>(request);
            }
        /// <summary>
        /// 从数据库中的数据构建搜索回应
        /// 支持自动分页和配合表格回调设置结果
        /// </summary>
        /// <typeparam name="TData">数据类型</typeparam>
        /// <param name="request">搜索请求</param>
        /// <param name="callbacks">表格回调</param>
        /// <returns></returns>
        public static AjaxTableSearchResponse BuildResponseFromDatabase <TData>(
            this AjaxTableSearchRequest request, IEnumerable <IAjaxTableCallback <TData> > callbacks)
            where TData : class, IEntity
        {
            var response = new AjaxTableSearchResponse();

            UnitOfWork.Read(context => {
                // 从数据库获取数据,过滤并排序
                var query = context.Query <TData>();
                foreach (var callback in callbacks)
                {
                    callback.OnQuery(request, context, ref query);
                }
                foreach (var callback in callbacks)
                {
                    callback.OnSort(request, context, ref query);
                }
                // 分页并设置分页信息
                // 当前页没有任何内容时返回最后一页的数据
                var queryResult   = response.Pagination.Paging(request, query);
                response.PageNo   = request.PageNo;
                response.PageSize = request.PageSize;
                // 选择数据
                // 默认把对象转换到的字符串保存到ToString中
                var pairs = queryResult
                            .Select(r => new EntityToTableRow <TData>(r))
                            .ToList();
                foreach (var pair in pairs)
                {
                    pair.Row["ToString"] = pair.Entity.ToString();
                }
                foreach (var callback in callbacks)
                {
                    callback.OnSelect(request, pairs);
                }
                response.Rows = pairs.Select(p => p.Row).ToList();
                // 调用返回搜索回应前的回调,这里会添加需要的列
                foreach (var callback in callbacks)
                {
                    callback.OnResponse(request, response);
                }
            });
            return(response);
        }
示例#23
0
            /// <summary>
            /// 添加列和操作
            /// </summary>
            public void OnResponse(
                AjaxTableSearchRequest request, AjaxTableSearchResponse response)
            {
                response.Columns.AddIdColumn("Id").StandardSetupForCrudPage <ProductManageApp>(request);
                response.Columns.AddNoColumn();
                response.Columns.AddHtmlColumn("Name", "30%");
                response.Columns.AddMemberColumn("Price");
                response.Columns.AddMemberColumn("Stock");
                response.Columns.AddMemberColumn("CreateTime");
                response.Columns.AddMemberColumn("LastUpdated");
                response.Columns.AddMemberColumn("Type");
                response.Columns.AddMemberColumn("State");
                response.Columns.AddEditColumnForCrudPage <UserManageApp>("Seller", "SellerId");
                response.Columns.AddMemberColumn("DisplayOrder");
                response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));
                var actionColumn = response.Columns.AddActionColumn("150");

                actionColumn.AddButtonForOpenLink(new T("Preview"),
                                                  "btn btn-xs btn-success", "fa fa-eye", "/product/view?id=<%-row.Id%>", "_blank");
                actionColumn.StandardSetupForCrudPage <ProductManageApp>(request);
            }
            /// <summary>
            /// 添加列和操作
            /// </summary>
            public override void OnResponse(
                AjaxTableSearchRequest request, AjaxTableSearchResponse response)
            {
                response.Columns.AddIdColumn("Id").StandardSetupFor <OrderCrudController>(request);
                response.Columns.AddHtmlColumn("OrderProducts", "30%");
                response.Columns.AddHtmlColumn("Price", "70");
                response.Columns.AddHtmlColumn("Quantity", "70");
                response.Columns.AddHtmlColumn("ShippedQuantity", "70");
                response.Columns.AddHtmlColumn("TotalCost", "70");
                response.Columns.AddEnumLabelColumn("State", typeof(OrderState), "50");
                response.Columns.AddEditColumnFor <UserCrudController>("Buyer", "BuyerId", width: "70");
                response.Columns.AddEditColumnFor <UserCrudController>("Seller", "SellerId", width: "70");
                var actionColumn = response.Columns.AddActionColumn("5%");
                var deleted      = request.Conditions.GetOrDefault <bool>("Deleted");

                if (!deleted)
                {
                    actionColumn.AddEditActionFor <OrderCrudController>();
                }
                actionColumn.AddHtmlAction("OrderActions");
            }
示例#25
0
        /// <summary>
        /// 搜索请求的处理函数
        /// </summary>
        /// <returns></returns>
        protected override IActionResult SearchAction()
        {
            // 检查权限
            var privilegeManager = Application.Ioc.Resolve <PrivilegeManager>();

            privilegeManager.Check(AllowedUserTypes, RequiredPrivileges);
            // 获取参数并转换到搜索请求
            var json    = HttpManager.CurrentContext.Request.Get <string>("json");
            var request = AjaxTableSearchRequest.FromJson(json);
            // 构建搜索回应
            var query = Translates.Select(t => new Translation()
            {
                Original = t.Key, Translated = t.Value
            });

            if (!string.IsNullOrEmpty(request.Keyword))
            {
                query = query.Where(q => q.Original.Contains(request.Keyword) || q.Translated.Contains(request.Keyword));
            }
            var response = new AjaxTableSearchResponse();
            var result   = response.Pagination.Paging(request, query.AsQueryable());

            response.PageNo   = request.PageNo;
            response.PageSize = request.PageSize;
            response.Rows.AddRange(result.Select(translation => new Dictionary <string, object>()
            {
                { "Id", HttpUtils.UrlEncode(translation.Original) },
                { "OriginalText", translation.Original },
                { "TranslatedText", translation.Translated },
                { "ToString", translation.ToString() }
            }));
            response.Columns.AddNoColumn();
            response.Columns.AddMemberColumn("OriginalText");
            response.Columns.AddMemberColumn("TranslatedText");
            var actionColumn = response.Columns.AddActionColumn("130");

            actionColumn.AddEditAction("Translation", EditUrl, dialogParameters: new { size = "size-wide" });
            actionColumn.AddDeleteAction("Translation", DeleteUrl);
            return(new JsonResult(response));
        }
示例#26
0
            /// <summary>
            /// 添加列和操作
            /// </summary>
            public override void OnResponse(
                AjaxTableSearchRequest request, AjaxTableSearchResponse response)
            {
                response.Columns.AddIdColumn("Id").StandardSetupFor <TController>(request);
                response.Columns.AddTreeNodeColumn("Name", "Level", "NoChilds");
                response.Columns.AddMemberColumn("CreateTime");
                response.Columns.AddMemberColumn("DisplayOrder");
                response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));
                var actionColumn     = response.Columns.AddActionColumn();
                var deleted          = request.Conditions.GetOrDefault <bool>("Deleted");
                var dialogParameters = new { size = "size-wide" };

                if (!deleted)
                {
                    actionColumn.AddEditActionFor <TController>(dialogParameters: dialogParameters);
                    actionColumn.AddDeleteActionFor <TController>();
                }
                else
                {
                    actionColumn.AddRecoverActionFor <TController>();
                    actionColumn.AddDeleteForeverActionFor <TController>();
                }
            }
示例#27
0
        /// <summary>
        /// 把Ajax表格数据的搜索回应转换为静态表格构建器
        /// </summary>
        /// <param name="response">搜索回应</param>
        /// <returns></returns>
        public static StaticTableBuilder ToTableBuilder(this AjaxTableSearchResponse response)
        {
            var builder = new StaticTableBuilder();

            // 添加列
            // 不显示Id列,序号列,操作列
            foreach (var column in response.Columns)
            {
                if (column is AjaxTableIdColumn ||
                    column.Key == "No" ||
                    column is AjaxTableActionColumn)
                {
                    continue;
                }
                builder.Columns.Add(column.Key);
            }
            // 添加行
            foreach (var row in response.Rows)
            {
                builder.Rows.Add(row);
            }
            return(builder);
        }
            /// <summary>
            /// 添加列和操作
            /// </summary>
            public override void OnResponse(
                AjaxTableSearchRequest request, AjaxTableSearchResponse response)
            {
                response.Columns.AddIdColumn("Id").StandardSetupFor <PaymentApiCrudController>(request);
                response.Columns.AddNoColumn();
                response.Columns.AddMemberColumn("Name", "35%");
                response.Columns.AddMemberColumn("Type");
                response.Columns.AddEditColumnFor <PaymentApiCrudController>("Owner", "OwnerId");
                response.Columns.AddMemberColumn("CreateTime");
                response.Columns.AddMemberColumn("UpdateTime");
                response.Columns.AddMemberColumn("DisplayOrder");
                response.Columns.AddEnumLabelColumn("Deleted", typeof(EnumDeleted));
                var actionColumn = response.Columns.AddActionColumn("155");
                var deleted      = request.Conditions.GetOrDefault <bool>("Deleted");

                if (!deleted)
                {
                    actionColumn.AddButtonForOpenLink(
                        new T("TestPayment"), "btn btn-xs btn-warning", "fa fa-edit",
                        "/admin/payment_apis/test_payment?id=<%-row.Id%>");
                }
                actionColumn.StandardSetupFor <PaymentApiCrudController>(request);
            }
        /// <summary>
        /// 搜索请求的处理函数
        /// </summary>
        /// <returns></returns>
        protected override IActionResult SearchAction()
        {
            var json    = Request.Get <string>("json");
            var request = AjaxTableSearchRequest.FromJson(json);
            var query   = Translates.Select(t =>
                                            new CustomTranslation()
            {
                Id = t.Key, Translated = t.Value
            });

            if (!string.IsNullOrEmpty(request.Keyword))
            {
                query = query.Where(q =>
                                    q.Id.Contains(request.Keyword) || q.Translated.Contains(request.Keyword));
            }
            var response = new AjaxTableSearchResponse();
            var result   = response.Pagination.Paging(request, query.AsQueryable());

            response.PageNo   = request.PageNo;
            response.PageSize = request.PageSize;
            response.Rows.AddRange(result.Select(translation => new Dictionary <string, object>()
            {
                { "Id", HttpUtils.UrlEncode(translation.Id) },
                { "OriginalText", translation.Id },
                { "TranslatedText", translation.Translated },
                { "ToString", translation.ToString() }
            }));
            response.Columns.AddNoColumn();
            response.Columns.AddMemberColumn("OriginalText");
            response.Columns.AddMemberColumn("TranslatedText");
            var actionColumn = response.Columns.AddActionColumn("130");

            actionColumn.AddEditAction("Translation", EditUrl, dialogParameters: new { size = "size-wide" });
            actionColumn.AddDeleteAction("Translation", DeleteUrl);
            return(new JsonResult(response));
        }
 /// <summary>
 /// 添加列和批量处理
 /// </summary>
 public abstract void OnResponse(
     AjaxTableSearchRequest request, AjaxTableSearchResponse response);