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(); } }