diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpColumnTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpColumnTagHelper.cs index ff46f6440a..9685490bd7 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpColumnTagHelper.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpColumnTagHelper.cs @@ -2,7 +2,9 @@ { public class AbpColumnTagHelper : AbpTagHelper { - public string Breakpoint { get; set; } + public string Size { get; set; } + + public VerticalAlign VAlign { get; set; } = VerticalAlign.Default; public AbpColumnTagHelper(AbpColumnTagHelperService tagHelperService) : base(tagHelperService) diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpColumnTagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpColumnTagHelperService.cs index 8bf55192bd..a12980c0fa 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpColumnTagHelperService.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpColumnTagHelperService.cs @@ -9,17 +9,24 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Grid { public override void Process(TagHelperContext context, TagHelperOutput output) { - output.Attributes.AddClass("col"); + output.TagName = "div"; - SetBreakpoint(output); + ProcessColClass(output); } - protected virtual void SetBreakpoint(TagHelperOutput output) + protected virtual void ProcessColClass(TagHelperOutput output) { - if (!string.IsNullOrWhiteSpace(TagHelper.Breakpoint)) + output.Attributes.AddClass("col" + (string.IsNullOrWhiteSpace(TagHelper.Size)? "" : "-" + TagHelper.Size)); + } + + protected virtual void ProcessVerticalAlign(TagHelperOutput output) + { + if (TagHelper.VAlign == VerticalAlign.Default) { - output.Attributes.AddClass("col-"+TagHelper.Breakpoint); + return; } + + output.Attributes.AddClass("align-self-" + TagHelper.VAlign.ToString().ToLowerInvariant()); } } } \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpContainerTagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpContainerTagHelperService.cs index 36ac30bd82..0c2c429907 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpContainerTagHelperService.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpContainerTagHelperService.cs @@ -8,6 +8,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Grid { public override void Process(TagHelperContext context, TagHelperOutput output) { + output.TagName = "div"; output.Attributes.AddClass("container"); } diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelper.cs index 473cc1c4e9..900b72fe25 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelper.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelper.cs @@ -2,6 +2,10 @@ { public class AbpRowTagHelper : AbpTagHelper { + public VerticalAlign VAlign { get; set; } = VerticalAlign.Default; + + public HorizontalAlign HAlign { get; set; } = HorizontalAlign.Default; + public AbpRowTagHelper(AbpRowTagHelperService tagHelperService) : base(tagHelperService) { diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelperService.cs index e5bf4efb41..53b7588764 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelperService.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelperService.cs @@ -1,4 +1,5 @@ -using System.Text; +using System.ComponentModel; +using System.Text; using Microsoft.AspNetCore.Razor.TagHelpers; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Microsoft.AspNetCore.Razor.TagHelpers; @@ -8,8 +9,32 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Grid { public override void Process(TagHelperContext context, TagHelperOutput output) { + output.TagName = "div"; output.Attributes.AddClass("row"); + + ProcessVerticalAlign(output); + ProcessHorizontalAlign(output); + } + + protected virtual void ProcessVerticalAlign(TagHelperOutput output) + { + if (TagHelper.VAlign == VerticalAlign.Default) + { + return; + } + + output.Attributes.AddClass("align-items-" + TagHelper.VAlign.ToString().ToLowerInvariant()); } - + + protected virtual void ProcessHorizontalAlign(TagHelperOutput output) + { + if (TagHelper.HAlign == HorizontalAlign.Default) + { + return; + } + + output.Attributes.AddClass("justify-content-" + TagHelper.HAlign.ToString().ToLowerInvariant()); + } + } } \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/HorizontalAlign.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/HorizontalAlign.cs new file mode 100644 index 0000000000..bc3d7f55e6 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/HorizontalAlign.cs @@ -0,0 +1,12 @@ +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Grid +{ + public enum HorizontalAlign + { + Default, + Start, + Center, + Around, + Between, + End + } +} \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/VerticalAlign.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/VerticalAlign.cs new file mode 100644 index 0000000000..1d5c3954f6 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/VerticalAlign.cs @@ -0,0 +1,10 @@ +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Grid +{ + public enum VerticalAlign + { + Default, + Start, + Center, + End + } +} \ No newline at end of file