using Microsoft.AspNetCore.Components;
namespace AyCode.Blazor.Components.Components.Grids;
///
/// Base class for custom InfoPanel templates.
/// Inherit from this class to create a custom InfoPanel for a specific grid.
///
public abstract class MgInfoPanelTemplateBase : MgGridInfoPanel
{
///
/// Override this to provide custom header content.
/// Return null to use default header.
///
protected virtual RenderFragment? GetHeaderTemplate() => null;
///
/// Override this to provide custom columns/content.
/// Return null to use auto-generated columns.
///
protected virtual RenderFragment? GetColumnsTemplate() => null;
///
/// Override this to provide custom footer content.
/// Return null to hide footer.
///
protected virtual RenderFragment? GetFooterTemplate() => null;
protected override void OnInitialized()
{
SetTemplates();
base.OnInitialized();
}
protected override void OnParametersSet()
{
SetTemplates();
base.OnParametersSet();
}
private void SetTemplates()
{
HeaderTemplate = GetHeaderTemplate();
ColumnsTemplate = GetColumnsTemplate();
FooterTemplate = GetFooterTemplate();
}
}