mirror of https://github.com/abpframework/abp.git
3 changed files with 79 additions and 9 deletions
@ -0,0 +1,22 @@ |
|||||
|
using Microsoft.AspNetCore.Razor.TagHelpers; |
||||
|
|
||||
|
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab |
||||
|
{ |
||||
|
[HtmlTargetElement("abp-tab-link", TagStructure = TagStructure.WithoutEndTag)] |
||||
|
public class AbpTabLinkTagHelper : AbpTagHelper<AbpTabLinkTagHelper, AbpTabLinkTagHelperService> |
||||
|
{ |
||||
|
public string Name { get; set; } |
||||
|
|
||||
|
public string Title { get; set; } |
||||
|
|
||||
|
public string ParentDropdownName { get; set; } |
||||
|
|
||||
|
public string Href { get; set; } |
||||
|
|
||||
|
public AbpTabLinkTagHelper(AbpTabLinkTagHelperService tagHelperService) |
||||
|
: base(tagHelperService) |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,46 @@ |
|||||
|
using System.Collections.Generic; |
||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.AspNetCore.Razor.TagHelpers; |
||||
|
|
||||
|
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab |
||||
|
{ |
||||
|
public class AbpTabLinkTagHelperService : AbpTagHelperService<AbpTabLinkTagHelper> |
||||
|
{ |
||||
|
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) |
||||
|
{ |
||||
|
SetPlaceholderForNameIfNotProvided(); |
||||
|
|
||||
|
var tabHeader = GetTabHeaderItem(context, output); |
||||
|
|
||||
|
var tabHeaderItems = GetValueFromContext<List<TabItem>>(context, TabItems); |
||||
|
|
||||
|
tabHeaderItems.Add(new TabItem(tabHeader, "", false, TagHelper.Name, TagHelper.ParentDropdownName, false)); |
||||
|
|
||||
|
output.SuppressOutput(); |
||||
|
} |
||||
|
|
||||
|
protected virtual string GetTabHeaderItem(TagHelperContext context, TagHelperOutput output) |
||||
|
{ |
||||
|
var id = TagHelper.Name + "-tab"; |
||||
|
var href = TagHelper.Href; |
||||
|
var title = TagHelper.Title; |
||||
|
|
||||
|
if (!string.IsNullOrWhiteSpace(TagHelper.ParentDropdownName)) |
||||
|
{ |
||||
|
return "<a class=\"dropdown-item\" id=\"" + id + "\" href=\"" + href + "\">" + title + "</a>"; |
||||
|
} |
||||
|
|
||||
|
return "<li class=\"nav-item\"><a class=\"nav-link" + AbpTabItemActivePlaceholder + "\" id=\"" + id + "\" href=\"" + href + "\">" + |
||||
|
title + |
||||
|
"</a></li>"; |
||||
|
} |
||||
|
|
||||
|
protected virtual void SetPlaceholderForNameIfNotProvided() |
||||
|
{ |
||||
|
if (string.IsNullOrWhiteSpace(TagHelper.Name)) |
||||
|
{ |
||||
|
TagHelper.Name = TabItemNamePlaceHolder; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue