mirror of https://github.com/abpframework/abp.git
4 changed files with 144 additions and 0 deletions
@ -0,0 +1,9 @@ |
|||
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Table |
|||
{ |
|||
public enum AbpTableBorderStyle |
|||
{ |
|||
Default, |
|||
Bordered, |
|||
Borderless |
|||
} |
|||
} |
|||
@ -0,0 +1,9 @@ |
|||
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Table |
|||
{ |
|||
public enum AbpTableHeaderTheme |
|||
{ |
|||
Default, |
|||
Light, |
|||
Dark |
|||
} |
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Table |
|||
{ |
|||
public class AbpTableTagHelper : AbpTagHelper<AbpTableTagHelper, AbpTableTagHelperService> |
|||
{ |
|||
public bool? Responsive { get; set; } |
|||
public bool? ResponsiveSm { get; set; } |
|||
public bool? ResponsiveMd { get; set; } |
|||
public bool? ResponsiveLg { get; set; } |
|||
public bool? ResponsiveXl { get; set; } |
|||
|
|||
public bool? DarkTheme { get; set; } |
|||
|
|||
public bool? StripedRows { get; set; } |
|||
|
|||
public bool? HoverableRows { get; set; } |
|||
|
|||
public bool? Small { get; set; } |
|||
|
|||
public AbpTableBorderStyle BorderStyle { get; set; } = AbpTableBorderStyle.Default; |
|||
|
|||
public AbpTableTagHelper(AbpTableTagHelperService tagHelperService) |
|||
: base(tagHelperService) |
|||
{ |
|||
|
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,99 @@ |
|||
using Microsoft.AspNetCore.Razor.TagHelpers; |
|||
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Microsoft.AspNetCore.Razor.TagHelpers; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Table |
|||
{ |
|||
public class AbpTableTagHelperService : AbpTagHelperService<AbpTableTagHelper> |
|||
{ |
|||
public override void Process(TagHelperContext context, TagHelperOutput output) |
|||
{ |
|||
output.TagName = "table"; |
|||
output.Attributes.AddClass("table"); |
|||
|
|||
SetResponsiveness(context, output); |
|||
SetTheme(context, output); |
|||
SetHoverableRows(context, output); |
|||
SetBorderStyle(context, output); |
|||
SetSmall(context, output); |
|||
SetStripedRows(context, output); |
|||
|
|||
} |
|||
|
|||
protected virtual void SetResponsiveness(TagHelperContext context, TagHelperOutput output) |
|||
{ |
|||
if (TagHelper.Responsive ?? false) |
|||
{ |
|||
output.PreElement.SetHtmlContent("<div class=\"table-responsive\">"); |
|||
} |
|||
else if (TagHelper.ResponsiveSm ?? false) |
|||
{ |
|||
output.PreElement.SetHtmlContent("<div class=\"table-responsive-sm\">"); |
|||
} |
|||
else if (TagHelper.ResponsiveMd ?? false) |
|||
{ |
|||
output.PreElement.SetHtmlContent("<div class=\"table-responsive-md\">"); |
|||
} |
|||
else if (TagHelper.ResponsiveLg ?? false) |
|||
{ |
|||
output.PreElement.SetHtmlContent("<div class=\"table-responsive-lg\">"); |
|||
} |
|||
else if (TagHelper.ResponsiveXl ?? false) |
|||
{ |
|||
output.PreElement.SetHtmlContent("<div class=\"table-responsive-xl\">"); |
|||
} |
|||
else |
|||
{ |
|||
return; |
|||
} |
|||
|
|||
output.PostElement.SetHtmlContent("</div>"); |
|||
} |
|||
|
|||
protected virtual void SetTheme(TagHelperContext context, TagHelperOutput output) |
|||
{ |
|||
if (TagHelper.DarkTheme ?? false) |
|||
{ |
|||
output.Attributes.AddClass("table-dark"); |
|||
} |
|||
} |
|||
|
|||
protected virtual void SetStripedRows(TagHelperContext context, TagHelperOutput output) |
|||
{ |
|||
if (TagHelper.StripedRows ?? false) |
|||
{ |
|||
output.Attributes.AddClass("table-striped"); |
|||
} |
|||
} |
|||
|
|||
protected virtual void SetHoverableRows(TagHelperContext context, TagHelperOutput output) |
|||
{ |
|||
if (TagHelper.HoverableRows ?? false) |
|||
{ |
|||
output.Attributes.AddClass("table-hover"); |
|||
} |
|||
} |
|||
|
|||
protected virtual void SetSmall(TagHelperContext context, TagHelperOutput output) |
|||
{ |
|||
if (TagHelper.Small ?? false) |
|||
{ |
|||
output.Attributes.AddClass("table-sm"); |
|||
} |
|||
} |
|||
|
|||
protected virtual void SetBorderStyle(TagHelperContext context, TagHelperOutput output) |
|||
{ |
|||
switch (TagHelper.BorderStyle) |
|||
{ |
|||
case AbpTableBorderStyle.Default: |
|||
return; |
|||
case AbpTableBorderStyle.Bordered: |
|||
output.Attributes.AddClass("table-bordered"); |
|||
return; |
|||
case AbpTableBorderStyle.Borderless: |
|||
output.Attributes.AddClass("table-borderless"); |
|||
return; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue