State Management in Blazor Splitter Component

2 Aug 20213 minutes to read

State management allows users to save and load Splitter state. The splitter will use user-provided state to render instead of its properties provided declaratively.

The following properties can be saved and loaded into each SplitterPane later.

Property
Collapsed
Min
Max
Size

Enabling persistence in Splitter

State persistence allows the Splitter to retain the current splitter panes state in the browser local storage for state maintenance. This action is handled through the EnablePersistence property which is set to false by default. When it is set to true, some properties of the SplitterPane will be retained even after refreshing the page.

The state will be persisted based on ID property. So, it is recommended to explicitly set the ID property for Splitter.

@using Syncfusion.Blazor.Layouts

<SfSplitter ID="Splitter" Height="300px" Width="100%" EnablePersistence="true">
    <SplitterPanes>
        <SplitterPane @bind-Min="@PaneMin" @bind-Size="@Pane1Size" Collapsible="true">
            <div>
                <div style="text-align: center">
                    <div>Left pane</div>
                </div>
            </div>
        </SplitterPane>
        <SplitterPane @bind-Min="@PaneMin" @bind-Size="@Pane2Size" Collapsible="true">
            <div>
                <div style="text-align: center">
                    <div>Middle pane</div>
                </div>
            </div>
        </SplitterPane>
        <SplitterPane @bind-Min="@PaneMin" Collapsible="true">
            <div>
                <div style="text-align: center">
                    <div>Last Pane</div>
                </div>
            </div>
        </SplitterPane>
    </SplitterPanes>
</SfSplitter>

@code {
    private string Pane1Size { get; set; } = "25%";
    private string Pane2Size { get; set; } = "50%";
    private string PaneMin { get; set; } = "60px";
}