Field order attiribute in form tag helper

pull/272/head
yekalkan 8 years ago
parent 85620a97bc
commit f27b487395

@ -71,7 +71,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers
public static T GetAttribute<T>(ModelExplorer property) where T : Attribute
{
var xd1 = property.Container.ModelType.GetTypeInfo();
//var xd1 = property.Container.ModelType.GetTypeInfo();
//var xd2 = xd1.GetProperty(property.Metadata.PropertyName);
var xd1 = property.Metadata.ContainerType.GetTypeInfo();
var xd2 = xd1.GetProperty(property.Metadata.PropertyName);
if (xd2 == null)

@ -11,9 +11,6 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
public string Label { get; set; }
[HtmlAttributeName("order")]
public int? FieldOrder { get; set; }
[HtmlAttributeNotBound]
[ViewContext]
public ViewContext ViewContext { get; set; }

@ -32,14 +32,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
var isCheckbox = IsInputCheckbox(inputTag.Attributes);
var label = GetLabelAsHtml(inputTag, isCheckbox);
var content = isCheckbox ?
inputHtml + Environment.NewLine + label :
label + Environment.NewLine + inputHtml;
var content = GetContent(label, inputHtml, isCheckbox);
content ="<div class=\""+(isCheckbox ? "form-check" : "form-group") +"\">" + Environment.NewLine + content + Environment.NewLine + "</div>";
//var order = GetAttribute<DisplayOrder>(TagHelper.AspFor.ModelExplorer);
var order = GetAttribute<DisplayOrder>(TagHelper.AspFor.ModelExplorer);
var list = context.Items["InputGroupContents"] as List<InputGroupContent>;
@ -48,13 +43,22 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
list.Add(new InputGroupContent
{
Html = content,
Order = TagHelper.FieldOrder ?? 999
Order = order?.Number ?? 0
});
}
output.SuppressOutput();
}
protected virtual string GetContent(string label, string inputHtml, bool isCheckbox)
{
var content = isCheckbox ?
inputHtml + Environment.NewLine + label :
label + Environment.NewLine + inputHtml;
return "<div class=\"" + (isCheckbox ? "form-check" : "form-group") + "\">" + Environment.NewLine + content + Environment.NewLine + "</div>";
}
protected virtual TagHelperOutput GetInputTag(TagHelperContext context)
{
var inputTagHelper = new InputTagHelper(_generator)

@ -16,8 +16,8 @@
<abp-dynamic-form model="@Model.Person">
<abp-input asp-for="@Model.Person.Name" />
<abp-input asp-for="@Model.Person.Age" order="9999" />
<abp-input asp-for="@Model.Person.Phone.Number" order="1" />
<abp-input asp-for="@Model.Person.Age" />
<abp-input asp-for="@Model.Person.Phone.Number" />
</abp-dynamic-form>
</div>
<div class="code-area">

@ -74,6 +74,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Components
public string Name { get; set; }
[Required]
[DisplayOrder(61)]
[DisplayName("Age")]
public int Age { get; set; }
@ -81,13 +82,13 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Components
[DisplayName("City")]
public Cities City { get; set; }
[DisplayOrder(51)]
public Phone Phone { get; set; }
[DataType(DataType.Date)]
[DisplayName("Day")]
public DateTime Day { get; set; }
[DisplayOrder(51)]
[DisplayName("Is Active")]
public bool IsActive { get; set; }
@ -102,7 +103,8 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Components
public string Number { get; set; }
[Required]
[DisplayName("Name")]
[DisplayOrder(71)]
[DisplayName("PhoneName")]
public string Name { get; set; }
}
}
Loading…
Cancel
Save