Browse Source

Merge pull request #16111 from blackWins/dynamicFormTagHelper

dynamicFormTagHelper add Column attribute
pull/16236/head
Yunus Emre Kalkan 3 years ago
committed by GitHub
parent
commit
74601db85e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      docs/en/UI/AspNetCore/Tag-Helpers/Dynamic-Forms.md
  2. 4
      docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Dynamic-Forms.md
  3. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelper.cs
  4. 19
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs

4
docs/en/UI/AspNetCore/Tag-Helpers/Dynamic-Forms.md

@ -108,6 +108,10 @@ See the [dynamic forms demo page](https://bootstrap-taghelpers.abp.io/Components
Sets the c# model for dynamic form. Properties of this modal are turned into inputs in the form.
### column-size
Here, use 'col-sm' to set the size . When setting this property 'col-12' will be added at the same time.
### submit-button
Can be `True` or `False`.

4
docs/zh-Hans/UI/AspNetCore/Tag-Helpers/Dynamic-Forms.md

@ -110,6 +110,10 @@ public class DynamicFormsModel : PageModel
为动态表单设置c#模型,模型的属性以表单形式转化为输入.
### column-size
此处使用 `col-sm` 来设置大小。当设置该属性是会同时添加 `col-12` .
### submit-button
可以为 `True``False`.

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelper.cs

@ -3,6 +3,7 @@ using System.ComponentModel;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Microsoft.AspNetCore.Razor.TagHelpers;
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Grid;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form;
@ -12,6 +13,9 @@ public class AbpDynamicFormTagHelper : AbpTagHelper<AbpDynamicFormTagHelper, Abp
[HtmlAttributeName("abp-model")]
public ModelExpression Model { get; set; }
[HtmlAttributeName("column-size")]
public ColumnSize ColumnSize { get; set; }
public bool? SubmitButton { get; set; }
public bool? RequiredSymbols { get; set; } = true;

19
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs

@ -14,6 +14,7 @@ using Microsoft.Extensions.Localization;
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Microsoft.AspNetCore.Razor.TagHelpers;
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button;
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Extensions;
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Grid;
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form;
@ -98,11 +99,15 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
{
var contentBuilder = new StringBuilder("");
contentBuilder.AppendLine("<div class=\"row\">");
foreach (var item in items.OrderBy(o => o.Order))
{
contentBuilder.AppendLine(item.HtmlContent);
contentBuilder.AppendLine(SetColumn(item.HtmlContent));
}
contentBuilder.AppendLine("</div>");
var content = childContent.GetContent();
if (content.Contains(AbpFormContentPlaceHolder))
{
@ -116,6 +121,18 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService<AbpDynamicForm
output.Content.SetHtmlContent(content);
}
protected virtual string SetColumn(string htmlContent)
{
if (TagHelper.ColumnSize == ColumnSize.Undefined || TagHelper.ColumnSize == ColumnSize._)
{
return htmlContent;
}
var col_class = $"col-12 col-sm-" + ((int)TagHelper.ColumnSize);
return $"<div class=\"{col_class}\">{htmlContent}</div>";
}
protected virtual async Task SetSubmitButton(TagHelperContext context, TagHelperOutput output)
{
if (!TagHelper.SubmitButton ?? true)

Loading…
Cancel
Save