diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs index 38f55ca04e..17383b46d6 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs +++ b/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.Form.DatePicker; namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; @@ -144,6 +145,10 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService(); + abpDateInputTagHelper.AspFor = model; + abpDateInputTagHelper.ViewContext = TagHelper.ViewContext; + abpDateInputTagHelper.DisplayRequiredSymbol = TagHelper.RequiredSymbols ?? true; + return abpDateInputTagHelper; + } + + private AbpTagHelper GetAbpDateRangeInputTagHelper(TagHelperContext context, TagHelperOutput output, + ModelExpression model) + { + var modelAttribute = model.ModelExplorer.GetAttribute(); + + var pickerId = modelAttribute.PickerId; + var otherModel = TagHelper.Model.ModelExplorer.Properties.SingleOrDefault(x => + x != model.ModelExplorer && x.GetAttribute()?.PickerId == pickerId); + var otherModelAttribute = otherModel?.GetAttribute(); + + var abpDateRangeInputTagHelper = _serviceProvider.GetRequiredService(); + abpDateRangeInputTagHelper.PickerId = pickerId; + abpDateRangeInputTagHelper.ViewContext = TagHelper.ViewContext; + if (modelAttribute.IsStart) + { + abpDateRangeInputTagHelper.AspForStart = model; + } + + if (otherModelAttribute?.IsStart == false) + { + abpDateRangeInputTagHelper.AspForEnd = ModelExplorerToModelExpressionConverter(otherModel); + } + + return abpDateRangeInputTagHelper; + } + + + private bool IsDateRangeGroup(ModelExplorer modelModelExplorer) + { + return modelModelExplorer.GetAttribute() != null; + } + protected virtual void RemoveFormGroupItemsNotInModel(TagHelperContext context, TagHelperOutput output, List items) { var models = GetModels(context, output); @@ -293,6 +353,20 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService() != null || model.ModelExplorer.GetAttribute() != null) + { + return true; + } + + if(model.Metadata.ModelType == typeof(DateTime) || model.Metadata.ModelType == typeof(DateTime?) || model.Metadata.ModelType == typeof(DateTimeOffset) || model.Metadata.ModelType == typeof(DateTimeOffset?)) + { + return true; + } + return false; + } protected virtual bool IsEnum(ModelExplorer explorer) {