Align Center Header Stack and Customize Header

Hi, 

The issue I'm having is that I want to move this text to the middle of header. I tried customizing the header with "HeadContent" but it doesn't work. How can I do that?

Image_2907_1713953463041

Here is my example:


 @using Syncfusion.Blazor.Grids
<div style="padding:20px;overflow:auto">
    <SfGrid DataSource="@Orders"
        AllowPaging="false"
        AllowResizing="true"
        AllowSelection=true
        EnableAutoFill=true >


        <GridColumns>
            <GridColumn Field=@nameof(Order.DrawingBySheet) Width="130">
                <HeadContent>
                    <div style="display:flex;align-items:center;justify-content:center;height:40px;width:100%;height:100%">
                        <span>Drawing By Sheet</span>
                    </div>
                </HeadContent>
            </GridColumn>
            <GridColumn Field=@nameof(Order.MiscBreakoutItems) HeaderText="Misc Breakout Items" TextAlign="TextAlign.Right" HeaderTextAlign="TextAlign.Center" Width="130"></GridColumn>
            <GridColumn Field=@nameof(Order.Category) HeaderText="Category" TextAlign="TextAlign.Right" HeaderTextAlign="TextAlign.Center" Width="130"></GridColumn>
            <GridColumn Field=@nameof(Order.Size) HeaderText="Size" TextAlign="TextAlign.Right" HeaderTextAlign="TextAlign.Center" Width="130"></GridColumn>
            <GridColumn Field=@nameof(Order.ItemDesc) HeaderText="Item Desc" TextAlign="TextAlign.Right" HeaderTextAlign="TextAlign.Center" Width="130"></GridColumn>
            <GridColumn HeaderText="Qty" HeaderTextAlign="TextAlign.Center">
                <GridColumns>
                    <GridColumn Field=@nameof(Order.Version1) HeaderText="Version 1" Format="d" Type="ColumnType.DateOnly" TextAlign="TextAlign.Right" Width="130"></GridColumn>
                    <GridColumn Field=@nameof(Order.Version2) HeaderText="Version 2" Type="ColumnType.TimeOnly" TextAlign="TextAlign.Right" Width="130"></GridColumn>
                    <GridColumn Field=@nameof(Order.Compare) HeaderText="Compare" TextAlign="TextAlign.Right" Width="120"></GridColumn>
                </GridColumns>
            </GridColumn>
            <GridColumn HeaderText="Mat Ext." HeaderTextAlign="TextAlign.Center">
                <GridColumns>
                    <GridColumn Field=@nameof(Order.Version1) HeaderText="Version 1" Format="d" Type="ColumnType.DateOnly" TextAlign="TextAlign.Right" Width="130"></GridColumn>
                    <GridColumn Field=@nameof(Order.Version2) HeaderText="Version 2" Type="ColumnType.TimeOnly" TextAlign="TextAlign.Right" Width="130"></GridColumn>
                    <GridColumn Field=@nameof(Order.Compare) HeaderText="Compare" TextAlign="TextAlign.Right" Width="120"></GridColumn>
                </GridColumns>
            </GridColumn>
            <GridColumn HeaderText="Shop Labor Rate Ext." HeaderTextAlign="TextAlign.Center">
                <GridColumns>
                    <GridColumn Field=@nameof(Order.Version1) HeaderText="Version 1" Format="d" Type="ColumnType.DateOnly" TextAlign="TextAlign.Right" Width="130"></GridColumn>
                    <GridColumn Field=@nameof(Order.Version2) HeaderText="Version 2" Type="ColumnType.TimeOnly" TextAlign="TextAlign.Right" Width="130"></GridColumn>
                    <GridColumn Field=@nameof(Order.Compare) HeaderText="Compare" TextAlign="TextAlign.Right" Width="120"></GridColumn>
                </GridColumns>
            </GridColumn>
            <GridColumn HeaderText="Field Labor Rate Ext." HeaderTextAlign="TextAlign.Center">
                <GridColumns>
                    <GridColumn Field=@nameof(Order.Version1) HeaderText="Version 1" Format="d" Type="ColumnType.DateOnly" TextAlign="TextAlign.Right" Width="130"></GridColumn>
                    <GridColumn Field=@nameof(Order.Version2) HeaderText="Version 2" Type="ColumnType.TimeOnly" TextAlign="TextAlign.Right" Width="130"></GridColumn>
                    <GridColumn Field=@nameof(Order.Compare) HeaderText="Compare" TextAlign="TextAlign.Right" Width="120"></GridColumn>
                </GridColumns>
            </GridColumn>
        </GridColumns>
    </SfGrid>


</div>


@code {
    public List<Order> Orders { get; set; }


    protected override void OnInitialized()
    {
        Orders = new List<Order>()
    {
        new Order() { DrawingBySheet = "Drawing by Sheet 09: P2.4A_Roof Plumbing Plan - Area A", MiscBreakoutItems = "Misc Breakout Items 00: (None)", Category = 1, Size = 2, ItemDesc = 3, Version1 = 1500, Version2 = 1250 },
        new Order() { DrawingBySheet = "Drawing by Sheet 09: P2.4A_Roof Plumbing Plan - Area A", MiscBreakoutItems = "Misc Breakout Items 00: (None)", Category = 2, Size = 3, ItemDesc = 4, Version1 = 1750, Version2 = 1350 },
        new Order() { DrawingBySheet = "Drawing by Sheet 09: P2.4A_Roof Plumbing Plan - Area A", MiscBreakoutItems = "Misc Breakout Items 00: (None)", Category = 3, Size = 4, ItemDesc = 5, Version1 = 1900, Version2 = 1450 },
        new Order() { DrawingBySheet = "Drawing by Sheet 09: P2.4A_Roof Plumbing Plan - Area A", MiscBreakoutItems = "Misc Breakout Items 00: (None)", Category = 4, Size = 5, ItemDesc = 6, Version1 = 2050, Version2 = 1550 },
        new Order() { DrawingBySheet = "Drawing by Sheet 09: P2.4A_Roof Plumbing Plan - Area A", MiscBreakoutItems = "Misc Breakout Items 00: (None)", Category = 5, Size = 6, ItemDesc = 7, Version1 = 2200, Version2 = 1650 },
        new Order() { DrawingBySheet = "Drawing by Sheet 09: P2.4A_Roof Plumbing Plan - Area A", MiscBreakoutItems = "Misc Breakout Items 00: (None)", Category = 6, Size = 7, ItemDesc = 8, Version1 = 2350, Version2 = 1750 },
        new Order() { DrawingBySheet = "Drawing by Sheet 09: P2.4A_Roof Plumbing Plan - Area A", MiscBreakoutItems = "Misc Breakout Items 00: (None)", Category = 7, Size = 8, ItemDesc = 9, Version1 = 2500, Version2 = 1850 },
        new Order() { DrawingBySheet = "Drawing by Sheet 09: P2.4A_Roof Plumbing Plan - Area A", MiscBreakoutItems = "Misc Breakout Items 00: (None)", Category = 8, Size = 9, ItemDesc = 10, Version1 = 2650, Version2 = 1950 },
        new Order() { DrawingBySheet = "Drawing by Sheet 09: P2.4A_Roof Plumbing Plan - Area A", MiscBreakoutItems = "Misc Breakout Items 00: (None)", Category = 9, Size = 10, ItemDesc = 11, Version1 = 2800, Version2 = 2050 },
        new Order() { DrawingBySheet = "Drawing by Sheet 09: P2.4A_Roof Plumbing Plan - Area A", MiscBreakoutItems = "Misc Breakout Items 00: (None)", Category = 10, Size = 11, ItemDesc = 12, Version1 = 2950, Version2 = 2150 }
    };
    }


    public class Order
    {
        public string DrawingBySheet { get; set; }
        public string MiscBreakoutItems { get; set; }
        public int Category { get; set; }
        public int Size { get; set; }
        public int ItemDesc { get; set; }
        public int Version1 { get; set; }
        public int Version2 { get; set; }
        public int Compare => Version1 - Version2;
    }
}

1 Reply 1 reply marked as answer

PS Prathap Senthil Syncfusion Team April 25, 2024 11:59 AM UTC

Hi Phúc Mai Hoài,

Based on your requirements, we have utilized the Custom Attribute feature in the Gridcolumn and customized CSS to meet your needs. Please refer to the code snippet and sample below for your reference.

<div style="padding:20px;overflow:auto">

    <SfGrid DataSource="@Orders"

        AllowPaging="false"

        AllowResizing="true"

        AllowSelection=true

        EnableAutoFill=true  >

 

 

        <GridColumns>

            <GridColumn Field=@nameof(Order.DrawingBySheet) CustomAttributes="@(new Dictionary<string, object>(){ { "class", "custom-css" }})" Width="130">

            </GridColumn>

            <GridColumn Field=@nameof(Order.MiscBreakoutItems) CustomAttributes="@(new Dictionary<string, object>(){ { "class", "custom-css" }})" HeaderText="Misc Breakout Items" TextAlign="TextAlign.Right" HeaderTextAlign="TextAlign.Center" Width="130"></GridColumn>

            <GridColumn Field=@nameof(Order.Category) HeaderText="Category" CustomAttributes="@(new Dictionary<string, object>(){ { "class", "custom-css" }})" TextAlign="TextAlign.Right" HeaderTextAlign="TextAlign.Center" Width="130"></GridColumn>

            <GridColumn Field=@nameof(Order.Size) HeaderText="Size" CustomAttributes="@(new Dictionary<string, object>(){ { "class", "custom-css" }})" TextAlign="TextAlign.Right" HeaderTextAlign="TextAlign.Center" Width="130"></GridColumn>

           

        </GridColumns>

    </SfGrid>

 

 

</div>

 

 

<style>

  

 

    .custom-css .e-headercelldiv {

        height: 45px;

    }

</style>


Reference:
https://blazor.syncfusion.com/documentation/datagrid/cell#using-property


Sample:
https://blazorplayground.syncfusion.com/embed/hNLzjfheiLoOXenu?appbar=true&editor=true&result=true&errorlist=true&theme=bootstrap5

Regards,
Prathap Senthil


Marked as answer
Loader.
Up arrow icon