Declined
Last Updated: 16 Apr 2025 06:50 by Meindert
Created by: Stefan
Comments: 2
Category: PivotGrid
Type: Feature Request
2

hello

please add support for bind pivotgrid to datatable or expando objects (local mode)

Unplanned
Last Updated: 10 Jan 2025 10:13 by Ho

When using local data binding, all defined PivotGrid measures are checked by default and render in the Grid.

Please provide the ability to define measures, which are not checked and visible in the Grid area by default.

Completed
Last Updated: 12 Jun 2025 07:18 by ADMIN
Release 2025 Q3 (Aug)

The Expand/Collapse icon of the PivotGrid is always a font one. I am using SVG icons in my app and I don't see the any icon in the toggle button.

===

ADMIN EDIT

===

A workaround for the time being is to register the Font icons stylesheet even if you are using SVG icons.

Completed
Last Updated: 14 Nov 2024 09:28 by ADMIN
Release 7.0.0
Created by: Mate
Comments: 0
Category: PivotGrid
Type: Bug Report
1
In the PivotGrid there are two "GRAND TOTAL" labels. When using localization only the one on the row is translated. The column Grand total label is not translated.
Unplanned
Last Updated: 21 Nov 2024 13:26 by Federico

I had already tried using reflection via dataTemplate to access the ColumnGroup and RowGroup properties. It would be nice if in future versions, if possible, these were accessible directly and without having to use reflection for efficiency reasons. Expose the current field as well.

In addition to this, it would be convenient to know which row and column they refer to, in order to know which field of the Pivot dataset relates to the calculation performed, and apply custom logic to them.

In summary, expose: ColumnGroup, RowGroup, and the current field.

Unplanned
Last Updated: 09 Jan 2025 12:38 by ADMIN
Created by: Thang Cam
Comments: 0
Category: PivotGrid
Type: Feature Request
1
I want to open a modal dialog to show more detail when the user clicks on a cell in the Pivot Table. I am developing the Pivot which the user can click on the cell and will generate the Grid Table based on the category which the cell currently is.
Unplanned
Last Updated: 26 Feb 2025 09:21 by Mate

The PivotGrid supports multiple Measures for the same Field on initial load. However, if the user makes a change in the configurator, then only the first Measure per Field remains visible.

===

TELERIK edit: Apart from not using a PivotGrid configurator, another possible workaround is to use custom UI instead of a configurator. Recreate the component to apply the changes:

<label class="k-checkbox-label">
    <TelerikCheckBox @bind-Value="@ShowCity"
                     OnChange="@OnPivotGridConfigurationChanged" />
    Show City Column
</label>
<label class="k-checkbox-label">
    <TelerikCheckBox @bind-Value="@ShowProduct"
                     OnChange="@OnPivotGridConfigurationChanged" />
    Show Product Row
</label>

@if (RenderPivotGrid)
{
    <TelerikPivotGrid Data="@PivotData"
                      DataProviderType="@PivotGridDataProviderType.Local"
                      ColumnHeadersWidth="240px">
        <PivotGridColumns>
            <PivotGridColumn Name="@nameof(PivotModel.Country)" Title="Country" />
            @if (ShowCity)
            {
                <PivotGridColumn Name="@nameof(PivotModel.City)" Title="City" />
            }
        </PivotGridColumns>
        <PivotGridRows>
            <PivotGridRow Name="@nameof(PivotModel.Category)" Title="Category" />
            @if (ShowProduct)
            {
                <PivotGridRow Name="@nameof(PivotModel.Product)" />
            }
        </PivotGridRows>
        <PivotGridMeasures>
            <PivotGridMeasure Name="@nameof(PivotModel.ContractValue)"
                              Title="Contract Value"
                              Aggregate="@PivotGridAggregateType.Sum" />
            <PivotGridMeasure Name="@nameof(PivotModel.ContractValue)"
                              Title="Contract Value"
                              Aggregate="@PivotGridAggregateType.Average" />
            <PivotGridMeasure Name="@nameof(PivotModel.ContractProfit)"
                              Title="Contract Value"
                              Aggregate="@PivotGridAggregateType.Sum" />
            <PivotGridMeasure Name="@nameof(PivotModel.ContractProfit)"
                              Title="Contract Value"
                              Aggregate="@PivotGridAggregateType.Average" />
        </PivotGridMeasures>
    </TelerikPivotGrid>
}

@code {
    private List<PivotModel> PivotData { get; set; } = new List<PivotModel>();

    private bool RenderPivotGrid { get; set; } = true;

    private bool ShowCity { get; set; }
    private bool ShowProduct { get; set; }

    private async Task OnPivotGridConfigurationChanged()
    {
        RenderPivotGrid = false;
        await Task.Delay(1);
        RenderPivotGrid = true;
    }

    protected override void OnInitialized()
    {
        var dataItemCount = 100;
        var categoryCount = 2;
        var productCount = 4 + 1;
        var countryCount = 2;
        var cityCount = 4 + 1;
        var rnd = Random.Shared;

        for (int i = 1; i <= dataItemCount; i++)
        {
            var productNumber = rnd.Next(1, productCount);
            var cityNumber = rnd.Next(1, cityCount);

            PivotData.Add(new PivotModel()
            {
                Category = $"Category {productNumber % categoryCount + 1}",
                Product = $"Product {productNumber}",
                Country = $"Country {cityNumber % countryCount + 1}",
                City = $"City {cityNumber}",
                ContractDate = DateTime.Now.AddDays(-rnd.Next(1, 31)).AddMonths(-rnd.Next(1, 12)).AddYears(-rnd.Next(0, 5)),
                ContractValue = rnd.Next(456, 987),
                ContractProfit = rnd.Next(43, 98)
            });
        }

        base.OnInitialized();
    }

    public class PivotModel
    {
        public string Category { get; set; } = null!;
        public string Product { get; set; } = null!;
        public string Country { get; set; } = null!;
        public string City { get; set; } = null!;
        public DateTime ContractDate { get; set; }
        public decimal ContractValue { get; set; }
        public decimal ContractProfit { get; set; }
    }
}

Under Review
Last Updated: 23 Apr 2025 12:19 by ADMIN
Created by: Kendo UI Support
Comments: 1
Category: PivotGrid
Type: Feature Request
1
If we set the model property to internal, it will change the behaviour of the serialization of the response behind the scenes.

This means I should reiterate the data and create a new object to remove the unwanted property. This is a waste of memory usage, isn't it more efficient if we tell the library to decide which fields to show or not?
1 2