Please add support for the Display(Name) DataAnnotations attribute for the autogenerated fields in the PivotGrid.
(Related to Title parameter for the rows and columns)
public class PivotModel
{
[Display(Name = "Net Revenue")]
public decimal Field1 { get; set; }
}
It would be nice to be able to customize the comparer used to display data in a specific order.
I think by default it uses a simple alphabetic comparison
But we have a lot of data using alpha and numeric information like:
And the user wants data in the numeric order, so we often implement our own comparer everywhere for it to work.
The PivotGrid doesn't seem to provide a way to customize the order of data even with a provider Local, ordering the source in a specific way before giving it to the component doesn't work either.
Thanks
Thomas
hello
please add support for bind pivotgrid to datatable or expando objects (local mode)
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.
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.
Hello,
in the WPF Pivot component I created custom calculated fields. Please expose a similar feature in the Blazor PivotGrid.
var OeeA = new OeeA_BerechnetesFeld(); //Telerik.Pivot.Core.CalculatedField
OeeA.Name = "OEE A";
DataSource.CalculatedFields.Add(OeeA); // DataSource is the LocalDataSourceProvider
DataSource.AggregateDescriptions.Add(new CalculatedAggregateDescription { CalculatedFieldName = "OEE A", StringFormat = "#.#0" });
The current privot grid is a good start, but it is missing some key features.
Hello
Just testing the new PivotGrid and a few features seem missing which may be critical and I cannot see an easy way to customise via templates or the like.
Apologies in advance if I have just missed it in the documentation or my understanding.
In my opinion, the main purpose a developer would put a PivotGrid into a web application;
Critical
Less Critical
Aside from that, all good and works well.
Cheers
Phil
I want to control the visibility of the total and sub-total. I want to be able to hide them if needed.
=====
TELERIK EDIT: It is possible to hide the Grand Total column and all Total rows with CSS. You can also hide only the non-Grand Total rows if you like.
<TelerikPivotGridContainer>
<TelerikPivotGridConfigurator />
<TelerikPivotGridConfiguratorButton />
<TelerikPivotGrid Data="@PivotData"
DataProviderType="@PivotGridDataProviderType.Local"
ColumnHeadersWidth="160px"
Class="no-headers">
<PivotGridColumns>
<PivotGridColumn Name="@nameof(PivotModel.Country)" Title="Country" />
<PivotGridColumn Name="@nameof(PivotModel.City)" Title="City" />
</PivotGridColumns>
<PivotGridRows>
<PivotGridRow Name="@nameof(PivotModel.Category)" Title="Category" />
<PivotGridRow Name="@nameof(PivotModel.Product)" Title="Product" />
</PivotGridRows>
<PivotGridMeasures>
<PivotGridMeasure Name="@nameof(PivotModel.ContractValue)"
Title="Contract Value"
Aggregate="@PivotGridAggregateType.Sum" />
</PivotGridMeasures>
</TelerikPivotGrid>
</TelerikPivotGridContainer>
<style>
/* Hide Grand Total column text. Remove cell paddings and borders. */
.k-pivotgrid-column-headers .k-pivotgrid-row:first-child .k-pivotgrid-header-total:last-child,
.k-pivotgrid-values .k-pivotgrid-header-total:last-child {
color: transparent;
font-size: 0;
padding: 0;
border-width: 0;
}
/* Shrink Grand Total column */
div.k-pivotgrid.no-headers .k-pivotgrid-column-headers col:last-child,
div.k-pivotgrid.no-headers .k-pivotgrid-values col:last-child {
width: 0 !important;
}
/* Hide Total row headers text */
/* Uncomment the not:() selector if you want to show back the Grand Total row. There must be no space before :not() */
div.k-pivotgrid.no-headers .k-pivotgrid-row-headers tr.k-pivotgrid-row:has(.k-pivotgrid-header-total)/*:not(:last-child)*/,
div.k-pivotgrid.no-headers .k-pivotgrid-values tr.k-pivotgrid-row:has(.k-pivotgrid-header-total:first-child)/*:not(:last-child)*/ {
font-size: 0;
color: transparent;
}
/* Remove Total headers cell paddings and borders */
/* Uncomment the not:() selector if you want to show back the Grand Total row. There must be no space before :not() */
div.k-pivotgrid.no-headers .k-pivotgrid-row-headers tr.k-pivotgrid-row:has(.k-pivotgrid-header-total)/*:not(:last-child)*/ th,
div.k-pivotgrid.no-headers .k-pivotgrid-values tr.k-pivotgrid-row:has(.k-pivotgrid-header-total:first-child)/*:not(:last-child)*/ td {
padding: 0;
border-width: 0;
}
</style>
@code {
private List<PivotModel> PivotData { get; set; } = new();
protected override void OnInitialized()
{
var dataItemCount = 100;
var categoryCount = 3;
var productCount = 10 + 1;
var countryCount = 2;
var cityCount = 4 + 1;
var rnd = Random.Shared;
for (int i = 1; i <= dataItemCount; i++)
{
var productNumber = Random.Shared.Next(1, productCount);
var categoryNumber = productNumber % categoryCount + 1;
var cityNumber = rnd.Next(1, cityCount);
var countryNumber = cityNumber % countryCount + 1;
PivotData.Add(new PivotModel()
{
Category = $"Category {categoryNumber}",
Product = $"Product {productNumber}",
Country = $"Country {countryNumber}",
City = $"City {cityNumber}",
ContractDate = DateTime.Now.AddDays(-rnd.Next(1, 31)).AddMonths(-rnd.Next(1, 12)).AddYears(-rnd.Next(0, 5)),
ContractValue = (productNumber == 3 || cityNumber == 2 || categoryNumber == 1) ? 0 : rnd.Next(123, 987)
});
}
base.OnInitialized();
}
public class PivotModel
{
public string Category { get; set; } = string.Empty;
public string Product { get; set; } = string.Empty;
public string Country { get; set; } = string.Empty;
public string City { get; set; } = string.Empty;
public DateTime ContractDate { get; set; }
public decimal ContractValue { get; set; }
}
}
I want to save or restore the state of the PivotGrid Configurator. Potentially, the user may have spent some time setting up their perfect PivotGrid that suited their needs, hence saving state seems critical.
===
ADMIN EDIT
===
The request covers exposing a state feature to programmatically manage various data operations in the PivotGrid - sorting, filtering, reordering of columns, expanding of items.