Browse Source

AbpDataGrid implementation.

pull/7686/head
Ilkay Ilknur 6 years ago
parent
commit
f760b48785
  1. 6
      framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/Extensibility/EntityActions/EntityAction.cs
  2. 8
      framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/Extensibility/TableColumns/TableColumn.cs
  3. 10
      framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/Extensibility/TableColumns/TableColumnsConfiguration.cs
  4. 12
      framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs
  5. 3
      framework/src/Volo.Abp.BlazoriseUI/Components/AbpDataGrid.razor
  6. 7
      framework/src/Volo.Abp.BlazoriseUI/Components/AbpDataGrid.razor.cs

6
framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/Extensibility/EntityActions/EntityAction.cs

@ -3,12 +3,16 @@ using System.Threading.Tasks;
namespace Volo.Abp.AspNetCore.Components.Extensibility.EntityActions namespace Volo.Abp.AspNetCore.Components.Extensibility.EntityActions
{ {
public class EntityAction public class EntityAction:IEquatable<EntityAction>
{ {
public string Text { get; set; } public string Text { get; set; }
public Func<object, Task> Clicked { get; set; } public Func<object, Task> Clicked { get; set; }
public string RequiredPolicy { get; set; } public string RequiredPolicy { get; set; }
public Func<object, string> ConfirmationMessage { get; set; } public Func<object, string> ConfirmationMessage { get; set; }
public bool Primary { get; set; } public bool Primary { get; set; }
public bool Equals(EntityAction other)
{
return string.Equals(Text, other?.Text, StringComparison.OrdinalIgnoreCase);
}
} }
} }

8
framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/Extensibility/TableColumns/TableColumn.cs

@ -6,7 +6,7 @@ using Volo.Abp.AspNetCore.Components.Extensibility.EntityActions;
namespace Volo.Abp.AspNetCore.Components.Extensibility.TableColumns namespace Volo.Abp.AspNetCore.Components.Extensibility.TableColumns
{ {
public class TableColumn public class TableColumn : IEquatable<TableColumn>
{ {
public string Title { get; set; } public string Title { get; set; }
public string Data { get; set; } public string Data { get; set; }
@ -18,5 +18,11 @@ namespace Volo.Abp.AspNetCore.Components.Extensibility.TableColumns
{ {
Actions = new List<EntityAction>(); Actions = new List<EntityAction>();
} }
public bool Equals(TableColumn other)
{
return string.Equals(Title, other?.Title, StringComparison.OrdinalIgnoreCase) &&
string.Equals(Data, other?.Data, StringComparison.OrdinalIgnoreCase);
}
} }
} }

10
framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/Extensibility/TableColumns/TableColumnsConfiguration.cs

@ -1,4 +1,5 @@
using System.Collections.Generic; using System;
using System.Collections.Generic;
namespace Volo.Abp.AspNetCore.Components.Extensibility.TableColumns namespace Volo.Abp.AspNetCore.Components.Extensibility.TableColumns
{ {
@ -13,7 +14,12 @@ namespace Volo.Abp.AspNetCore.Components.Extensibility.TableColumns
public List<TableColumn> Get<T>() public List<TableColumn> Get<T>()
{ {
return TableColumns.GetOrAdd(typeof(T).FullName, () => new List<TableColumn>()); return Get(typeof(T));
}
public List<TableColumn> Get(Type type)
{
return TableColumns.GetOrAdd(type.FullName, () => new List<TableColumn>());
} }
} }
} }

12
framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs

@ -206,6 +206,8 @@ namespace Volo.Abp.BlazoriseUI
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
await SetEntityActionsAsync();
await SetTableColumnsAsync();
await SetBreadcrumbItemsAsync(); await SetBreadcrumbItemsAsync();
await SetPermissionsAsync(); await SetPermissionsAsync();
} }
@ -450,5 +452,15 @@ namespace Volo.Abp.BlazoriseUI
{ {
return ValueTask.CompletedTask; return ValueTask.CompletedTask;
} }
protected virtual ValueTask SetEntityActionsAsync()
{
return ValueTask.CompletedTask;
}
protected virtual ValueTask SetTableColumnsAsync()
{
return ValueTask.CompletedTask;
}
} }
} }

3
framework/src/Volo.Abp.BlazoriseUI/Components/AbpDataGrid.razor

@ -1,5 +1,6 @@
@typeparam TItem @typeparam TItem
@using Blazorise.DataGrid; @using Blazorise.DataGrid;
@using Volo.Abp.AspNetCore.Components.Extensibility
<DataGrid TItem="TItem" <DataGrid TItem="TItem"
@ -9,7 +10,7 @@
ShowPager="@ShowPager" ShowPager="@ShowPager"
PageSize="@PageSize"> PageSize="@PageSize">
<DataGridColumns> <DataGridColumns>
@foreach (var column in Columns) @foreach (var column in UIExtensions.Instance.TableColumns.Get(Page))
{ {
if (column.Actions.Any()) if (column.Actions.Any())
{ {

7
framework/src/Volo.Abp.BlazoriseUI/Components/AbpDataGrid.razor.cs

@ -1,4 +1,5 @@
using Blazorise.DataGrid; using System;
using Blazorise.DataGrid;
using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components;
using System.Collections.Generic; using System.Collections.Generic;
using Volo.Abp.AspNetCore.Components.Extensibility.TableColumns; using Volo.Abp.AspNetCore.Components.Extensibility.TableColumns;
@ -24,8 +25,8 @@ namespace Volo.Abp.BlazoriseUI.Components
[Parameter] [Parameter]
public int PageSize { get; set; } public int PageSize { get; set; }
[Parameter] [Parameter]
public List<TableColumn> Columns { get; set; } public Type Page { get; set; }
} }
} }

Loading…
Cancel
Save