From 755a6ffd714f1ac83aa5a74073f1d7744573085f Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 17 Nov 2022 18:46:34 +0800 Subject: [PATCH] Add `LabelTooltip` feature to `AbpInputTagHelper`. --- .../TagHelpers/Form/AbpInputTagHelper.cs | 8 +++++ .../Form/AbpInputTagHelperService.cs | 31 ++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs index 5778e47692..92f3769264 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs @@ -10,6 +10,14 @@ public class AbpInputTagHelper : AbpTagHelper label.AddCssClass(isCheckbox ? "form-check-label" : "form-label"); + if (!TagHelper.LabelTooltip.IsNullOrEmpty()) + { + label.Attributes.Add("data-bs-toggle", "tooltip"); + label.Attributes.Add("data-bs-placement", TagHelper.LabelTooltipPlacement); + if (TagHelper.LabelTooltipHtml) + { + label.Attributes.Add("data-bs-html", "true"); + } + label.Attributes.Add("title", TagHelper.LabelTooltip); + label.InnerHtml.AppendHtml($" "); + } + return label.ToHtmlString(); } @@ -337,7 +349,24 @@ public class AbpInputTagHelperService : AbpTagHelperService attributeList.AddClass(isCheckbox ? "form-check-label" : "form-label"); - return await labelTagHelper.RenderAsync(attributeList, context, _encoder, "label", TagMode.StartTagAndEndTag); + if (!TagHelper.LabelTooltip.IsNullOrEmpty()) + { + attributeList.Add("data-bs-toggle", "tooltip"); + attributeList.Add("data-bs-placement", TagHelper.LabelTooltipPlacement); + if (TagHelper.LabelTooltipHtml) + { + attributeList.Add("data-bs-html", "true"); + } + attributeList.Add("title", TagHelper.LabelTooltip); + } + + var innerOutput = await labelTagHelper.ProcessAndGetOutputAsync(attributeList, context, "label", TagMode.StartTagAndEndTag); + if (!TagHelper.LabelTooltip.IsNullOrEmpty()) + { + innerOutput.Content.AppendHtml($" "); + } + + return innerOutput.Render(_encoder); } protected virtual void ConvertToTextAreaIfTextArea(TagHelperOutput tagHelperOutput)