From 402861f4f4d315de12865d86b83f1f99b2b2eb69 Mon Sep 17 00:00:00 2001 From: Salih Date: Wed, 24 May 2023 15:48:34 +0300 Subject: [PATCH 1/2] Bind when date is a valid value --- .../AbpDatePickerBaseTagHelperService.cs | 32 +++++++++++++++++-- .../AbpDatePickerTagHelperService.cs | 8 +++-- .../bootstrap/dom-event-handlers.js | 6 ++-- 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs index 6e5f0ad2f7..16ca178055 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs @@ -23,10 +23,36 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp where TTagHelper : AbpDatePickerBaseTagHelper { protected readonly Dictionary> SupportedInputTypes = new() { - {typeof(string), o => DateTime.Parse((string)o).ToString("O")}, - {typeof(DateTime), o => ((DateTime) o).ToString("O")}, + {typeof(string), o => + { + if(o is string s && DateTime.TryParse(s, out var dt)) + { + return dt.ToString("O"); + } + + return string.Empty; + } + }, + {typeof(DateTime), o => + { + if(o is DateTime dt && dt != default) + { + return dt.ToString("O"); + } + return string.Empty; + } + }, {typeof(DateTime?), o => ((DateTime?) o)?.ToString("O")}, - {typeof(DateTimeOffset), o => ((DateTimeOffset) o).ToString("O")}, + {typeof(DateTimeOffset), o => + { + if(o is DateTimeOffset dto && dto != default) + { + return dto.ToString("O"); + } + + return string.Empty; + } + }, {typeof(DateTimeOffset?), o => ((DateTimeOffset?) o)?.ToString("O")} }; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs index e5eae85c53..2542ea770a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs @@ -64,10 +64,14 @@ public class AbpDatePickerTagHelperService : AbpDatePickerBaseTagHelperService Date: Thu, 25 May 2023 10:28:43 +0300 Subject: [PATCH 2/2] Refactor #16651 --- .../DatePicker/AbpDatePickerBaseTagHelperService.cs | 13 +++++++++---- .../DatePicker/AbpDatePickerTagHelperService.cs | 3 +-- .../bootstrap/dom-event-handlers.js | 2 -- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs index 16ca178055..92bb48b974 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs @@ -22,8 +22,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelperService where TTagHelper : AbpDatePickerBaseTagHelper { - protected readonly Dictionary> SupportedInputTypes = new() { - {typeof(string), o => + protected readonly Dictionary> SupportedInputTypes = new() + { + { + typeof(string), o => { if(o is string s && DateTime.TryParse(s, out var dt)) { @@ -33,17 +35,20 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp return string.Empty; } }, - {typeof(DateTime), o => + { + typeof(DateTime), o => { if(o is DateTime dt && dt != default) { return dt.ToString("O"); } + return string.Empty; } }, {typeof(DateTime?), o => ((DateTime?) o)?.ToString("O")}, - {typeof(DateTimeOffset), o => + { + typeof(DateTimeOffset), o => { if(o is DateTimeOffset dto && dto != default) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs index 2542ea770a..727ab1a239 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs @@ -63,8 +63,7 @@ public class AbpDatePickerTagHelperService : AbpDatePickerBaseTagHelperService