|
|
|
@ -0,0 +1,99 @@
|
|
|
|
|
using Microsoft.AspNetCore.Razor.TagHelpers;
|
|
|
|
|
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Microsoft.AspNetCore.Razor.TagHelpers;
|
|
|
|
|
|
|
|
|
|
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Table
|
|
|
|
|
{
|
|
|
|
|
public class AbpTableTagHelperService : AbpTagHelperService<AbpTableTagHelper>
|
|
|
|
|
{
|
|
|
|
|
public override void Process(TagHelperContext context, TagHelperOutput output)
|
|
|
|
|
{
|
|
|
|
|
output.TagName = "table";
|
|
|
|
|
output.Attributes.AddClass("table");
|
|
|
|
|
|
|
|
|
|
SetResponsiveness(context, output);
|
|
|
|
|
SetTheme(context, output);
|
|
|
|
|
SetHoverableRows(context, output);
|
|
|
|
|
SetBorderStyle(context, output);
|
|
|
|
|
SetSmall(context, output);
|
|
|
|
|
SetStripedRows(context, output);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual void SetResponsiveness(TagHelperContext context, TagHelperOutput output)
|
|
|
|
|
{
|
|
|
|
|
if (TagHelper.Responsive ?? false)
|
|
|
|
|
{
|
|
|
|
|
output.PreElement.SetHtmlContent("<div class=\"table-responsive\">");
|
|
|
|
|
}
|
|
|
|
|
else if (TagHelper.ResponsiveSm ?? false)
|
|
|
|
|
{
|
|
|
|
|
output.PreElement.SetHtmlContent("<div class=\"table-responsive-sm\">");
|
|
|
|
|
}
|
|
|
|
|
else if (TagHelper.ResponsiveMd ?? false)
|
|
|
|
|
{
|
|
|
|
|
output.PreElement.SetHtmlContent("<div class=\"table-responsive-md\">");
|
|
|
|
|
}
|
|
|
|
|
else if (TagHelper.ResponsiveLg ?? false)
|
|
|
|
|
{
|
|
|
|
|
output.PreElement.SetHtmlContent("<div class=\"table-responsive-lg\">");
|
|
|
|
|
}
|
|
|
|
|
else if (TagHelper.ResponsiveXl ?? false)
|
|
|
|
|
{
|
|
|
|
|
output.PreElement.SetHtmlContent("<div class=\"table-responsive-xl\">");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
output.PostElement.SetHtmlContent("</div>");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual void SetTheme(TagHelperContext context, TagHelperOutput output)
|
|
|
|
|
{
|
|
|
|
|
if (TagHelper.DarkTheme ?? false)
|
|
|
|
|
{
|
|
|
|
|
output.Attributes.AddClass("table-dark");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual void SetStripedRows(TagHelperContext context, TagHelperOutput output)
|
|
|
|
|
{
|
|
|
|
|
if (TagHelper.StripedRows ?? false)
|
|
|
|
|
{
|
|
|
|
|
output.Attributes.AddClass("table-striped");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual void SetHoverableRows(TagHelperContext context, TagHelperOutput output)
|
|
|
|
|
{
|
|
|
|
|
if (TagHelper.HoverableRows ?? false)
|
|
|
|
|
{
|
|
|
|
|
output.Attributes.AddClass("table-hover");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual void SetSmall(TagHelperContext context, TagHelperOutput output)
|
|
|
|
|
{
|
|
|
|
|
if (TagHelper.Small ?? false)
|
|
|
|
|
{
|
|
|
|
|
output.Attributes.AddClass("table-sm");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual void SetBorderStyle(TagHelperContext context, TagHelperOutput output)
|
|
|
|
|
{
|
|
|
|
|
switch (TagHelper.BorderStyle)
|
|
|
|
|
{
|
|
|
|
|
case AbpTableBorderStyle.Default:
|
|
|
|
|
return;
|
|
|
|
|
case AbpTableBorderStyle.Bordered:
|
|
|
|
|
output.Attributes.AddClass("table-bordered");
|
|
|
|
|
return;
|
|
|
|
|
case AbpTableBorderStyle.Borderless:
|
|
|
|
|
output.Attributes.AddClass("table-borderless");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|