!1852 feat(#I49OMD): add InvisibleColumns parameter on DataTableDynamicContext

* chore: bump version to 5.10.6
* feat: 增加不显示列设置
This commit is contained in:
Argo
2021-09-12 12:17:29 +00:00
parent 07b1fe369a
commit 8661b98e78
2 changed files with 11 additions and 5 deletions

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<Version>5.10.5</Version>
<Version>5.10.6</Version>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net5.0'">

View File

@@ -39,9 +39,10 @@ namespace BootstrapBlazor.Components
/// </summary>
/// <param name="table"></param>
/// <param name="addAttributesCallback"></param>
/// <param name="invisibleColumns">永远不显示的列集合 默认为 null 全部显示</param>
/// <param name="shownColumns">显示列集合 默认为 null 全部显示</param>
/// <param name="hiddenColumns">隐藏列集合 默认为 null 无隐藏列</param>
public DataTableDynamicContext(DataTable table, Action<DataTableDynamicContext, ITableColumn>? addAttributesCallback = null, IEnumerable<string>? shownColumns = null, IEnumerable<string>? hiddenColumns = null)
public DataTableDynamicContext(DataTable table, Action<DataTableDynamicContext, ITableColumn>? addAttributesCallback = null, IEnumerable<string>? invisibleColumns = null, IEnumerable<string>? shownColumns = null, IEnumerable<string>? hiddenColumns = null)
{
DataTable = table;
AddAttributesCallback = addAttributesCallback;
@@ -58,15 +59,20 @@ namespace BootstrapBlazor.Components
DynamicObjectType = dynamicType;
// 获得显示列
Columns = InternalTableColumn.GetProperties(DynamicObjectType, cols).Where(col => GetShownColumns(col.GetFieldName(), shownColumns, hiddenColumns)).ToList();
Columns = InternalTableColumn.GetProperties(DynamicObjectType, cols).Where(col => GetShownColumns(col.GetFieldName(), invisibleColumns, shownColumns, hiddenColumns)).ToList();
}
private static bool GetShownColumns(string columnName, IEnumerable<string>? shownColumns, IEnumerable<string>? hiddenColumns)
private static bool GetShownColumns(string columnName, IEnumerable<string>? invisibleColumns, IEnumerable<string>? shownColumns, IEnumerable<string>? hiddenColumns)
{
var ret = true;
if (invisibleColumns != null && invisibleColumns.Any(c => c.Equals(columnName, StringComparison.OrdinalIgnoreCase)))
{
ret = false;
}
// 隐藏列优先 移除隐藏列
if (hiddenColumns != null && hiddenColumns.Any(c => c.Equals(columnName, StringComparison.OrdinalIgnoreCase)))
if (ret && hiddenColumns != null && hiddenColumns.Any(c => c.Equals(columnName, StringComparison.OrdinalIgnoreCase)))
{
ret = false;
}