BootstrapBlazor 的 Table 组件的 列显示/隐藏 处理方式
1. 定义实体类时,当 [AutoGenerateClass(Visible = true)] 时,列的 [AutoGenerateColumn(Visible = true|false)] 设置中,有 Visible 设置的以列设置为准,没有 Visible 设置的默认为 true 。
注:如 [AutoGenerateColumn(Visible = true|false)] 设置与 TableColumn Visible="true|false" 设置不同,则以 TableColumn Visible="true|false" 设置为准。
2. 定义实体类时,当 [AutoGenerateClass(Visible = false)] 时,忽略所有列的 [AutoGenerateColumn(Visible = true|false)] 设置,以 Table 组件中的 TableColumn Visible="true|false" 设置为准(如无,则默认 Visible = false) 。
3. 读取 [AutoGenerateClass(Visible = true|false)] 中 Visible 的值 代码示例。
/// <summary>
/// 读取 [AutoGenerateClass(Visible = true|false)] 中 Visible 的值。<br/>
/// BootstrapBlazor 的 Table 组件的 列显示/隐藏 处理方式:<br/>
/// (1)此值为 true 时,列的 [AutoGenerateColumn(Visible = true|false)] 设置中,有 Visible 设置的以列设置为准,没有 Visible 设置的默认为 true 。<br/>
/// 注:如 [AutoGenerateColumn(Visible = true|false)] 设置与 TableColumn Visible="true|false" 设置不同,则以 TableColumn Visible="true|false" 设置为准。<br/>
/// (2)此值为 false 时,忽略所有列的 [AutoGenerateColumn(Visible = true|false)] 设置,以 Table 组件中的 TableColumn Visible="true|false" 设置为准(如无,则默认 Visible = false) 。<br/>
/// 示例:boot b = GetAutoGenerateClassVisible(typeof(ApplicationUser));
/// </summary>
/// <param name="ClassType">实体类名,示例:typeof(ApplicationUser)</param>
/// <returns></returns>
public static bool GetAutoGenerateClassVisible(Type ClassType)
{
//没有设置时,默认为 true
bool Visible = true;
foreach (var c in ClassType.CustomAttributes)
{
if (c.AttributeType.Name == "AutoGenerateClassAttribute")
{
foreach (var n in c.NamedArguments)
{
//如果找到 Visible 设置,则按设置的值 显示/隐藏 当前列
if (n.MemberName == "Visible")
{
Visible = Convert.ToBoolean(n.TypedValue.Value);
break;
}
}
break;
}
}
return Visible;
}