mirror of https://github.com/abpframework/abp.git
8 changed files with 123 additions and 17 deletions
@ -0,0 +1,18 @@ |
|||
using Microsoft.AspNetCore.Razor.TagHelpers; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab |
|||
{ |
|||
[HtmlTargetElement("abp-tab-dropdown")] |
|||
public class AbpTabDropdownTagHelper : AbpTagHelper<AbpTabDropdownTagHelper, AbpTabDropdownTagHelperService> |
|||
{ |
|||
public string Name { get; set; } |
|||
|
|||
public string Title { get; set; } |
|||
|
|||
public AbpTabDropdownTagHelper(AbpTabDropdownTagHelperService tagHelperService) |
|||
: base(tagHelperService) |
|||
{ |
|||
|
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,43 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.AspNetCore.Razor.TagHelpers; |
|||
|
|||
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab |
|||
{ |
|||
public class AbpTabDropdownTagHelperService : AbpTagHelperService<AbpTabDropdownTagHelper> |
|||
{ |
|||
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) |
|||
{ |
|||
if (string.IsNullOrWhiteSpace(TagHelper.Name)) |
|||
{ |
|||
throw new Exception("Name of tab dropdown tag can not bu null or empty."); |
|||
} |
|||
|
|||
await output.GetChildContentAsync(); |
|||
var tabHeader = GetTabHeaderItem(context, output); |
|||
|
|||
var tabHeaderItems = GetValueFromContext<List<TabItem>>(context, TabItems); |
|||
|
|||
tabHeaderItems.Add(new TabItem(tabHeader, "", false, TagHelper.Name, "", true)); |
|||
|
|||
output.SuppressOutput(); |
|||
} |
|||
|
|||
protected virtual string GetTabHeaderItem(TagHelperContext context, TagHelperOutput output) |
|||
{ |
|||
var id = TagHelper.Name + "-tab"; |
|||
var link = TagHelper.Name; |
|||
var title = TagHelper.Title; |
|||
|
|||
return "<li class=\"nav-item dropdown\">" + |
|||
"<a class=\"nav-link dropdown-toggle\" id=\"" + id + "\" data-toggle=\"dropdown\" href=\"#" + link + "\" role=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\">" + |
|||
title + |
|||
"</a>" + |
|||
"<div class=\"dropdown-menu\">" + |
|||
AbpTabDropdownItemsActivePlaceholder + |
|||
"</div>" + |
|||
"</li>"; |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue