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