From 912b2616e401aa2bf9c9ffb61364e10e859c556f Mon Sep 17 00:00:00 2001 From: yekalkan Date: Thu, 26 Apr 2018 15:35:43 +0300 Subject: [PATCH] basic Form-group and input tag helpers --- .../TagHelpers/Form/AbpFormGroupTagHelper.cs | 1 - .../Form/AbpFormGroupTagHelperService.cs | 29 +++++++++++++++++-- .../TagHelpers/Form/AbpInputTagHelper.cs | 18 ++++++++++++ .../Form/AbpInputTagHelperService.cs | 17 +++++++++++ .../Pages/Components/Forms.cshtml | 4 +-- 5 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs create mode 100644 src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpFormGroupTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpFormGroupTagHelper.cs index cbbc8fec29..300ed7a4c3 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpFormGroupTagHelper.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpFormGroupTagHelper.cs @@ -4,7 +4,6 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form { public class AbpFormGroupTagHelper : AbpTagHelper { - public bool Checkbox { get; set; } public AbpFormGroupTagHelper(AbpFormGroupTagHelperService tagHelperService) diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpFormGroupTagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpFormGroupTagHelperService.cs index 5823827477..6f8b230c6d 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpFormGroupTagHelperService.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpFormGroupTagHelperService.cs @@ -1,4 +1,9 @@ -using System.Text; +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using System.Text.Encodings.Web; +using System.Threading.Tasks; using Microsoft.AspNetCore.Razor.TagHelpers; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Microsoft.AspNetCore.Razor.TagHelpers; @@ -6,14 +11,34 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form { public class AbpFormGroupTagHelperService : AbpTagHelperService { + private readonly HtmlEncoder _htmlEncoder; + private readonly AbpInputTagHelper _abpInputTagHelper; + + public AbpFormGroupTagHelperService(HtmlEncoder htmlEncoder, AbpInputTagHelper abpInputTagHelper) + { + _htmlEncoder = htmlEncoder; + _abpInputTagHelper = abpInputTagHelper; + } + public override void Process(TagHelperContext context, TagHelperOutput output) { output.TagName = "div"; output.Attributes.AddClass("form-group"); if (TagHelper.Checkbox) { - output.Attributes.AddClass("form-check"); + output.Attributes.AddClass("form-check"); } + + + //var attributes = new TagHelperAttributeList + //{ + // {"Type", "Text"}, + // {"Placeholder", "plcHlder"} + //}; + + //output.Content.AppendHtml(RenderInputTagHelper(attributes, _abpInputTagHelper, _htmlEncoder)); + } + } } \ No newline at end of file diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs new file mode 100644 index 0000000000..7b9e823b29 --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs @@ -0,0 +1,18 @@ +using Microsoft.AspNetCore.Razor.TagHelpers; + + +using JetBrains.Annotations; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form +{ + public class AbpInputTagHelper : AbpTagHelper, ITransientDependency + { + + public AbpInputTagHelper(AbpInputTagHelperService tagHelperService) + : base(tagHelperService) + { + + } + } +} diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs new file mode 100644 index 0000000000..357543793c --- /dev/null +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs @@ -0,0 +1,17 @@ +using System.Text; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Razor.TagHelpers; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form +{ + public class AbpInputTagHelperService : AbpTagHelperService + { + public override void Process(TagHelperContext context, TagHelperOutput output) + { + output.TagName = "input"; + output.Attributes.AddClass("form-control"); + output.TagMode = TagMode.SelfClosing; + } + } +} \ No newline at end of file diff --git a/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Forms.cshtml b/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Forms.cshtml index 7e388521bb..5f34a0ebf1 100644 --- a/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Forms.cshtml +++ b/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Forms.cshtml @@ -13,7 +13,7 @@
- + @@ -23,7 +23,7 @@
       
         <abp-form-group>
-            <input type="text" class="form-control">
+            <abp-input type="text"/>
         </abp-form-group>
         <abp-form-group checkbox="true">
             <input type="checkbox" class="form-check-input" id="exampleCheck1">