/// <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"); }
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"); }
/// <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"); }
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); // 操作列 }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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"); }
/// <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)); }
/// <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>(); } }
/// <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);