@using Syncfusion.Blazor.PivotView
<SfPivotView@ref="PivotObj"TValue="ProductDetails"Height="100%"Width="700"ShowGroupingBar="true"ShowFieldList="true">
<PivotViewDataSourceSettingsDataSource="@Data"EnableSorting=true>
<PivotViewColumns>
<PivotViewColumnName="Year">PivotViewColumn>
<PivotViewColumnName="Quarter">PivotViewColumn>
PivotViewColumns>
<PivotViewRows>
<PivotViewRowName="Country">PivotViewRow>
<PivotViewRowName="Products">PivotViewRow>
PivotViewRows>
<PivotViewValues>
<PivotViewValueName="Sold"Caption="Units
Sold">PivotViewValue>
PivotViewValues>
<PivotViewFormatSettings>
<PivotViewFormatSettingName="Amount"Format="C0"UseGrouping=true>PivotViewFormatSetting>
PivotViewFormatSettings>
PivotViewDataSourceSettings>
<PivotViewGridSettingsColumnWidth="140">PivotViewGridSettings>
<PivotViewEventsTValue="ProductDetails"EnginePopulating="@Engine_Populating">PivotViewEvents>
SfPivotView>
<style>
.e-pivotview{
min-height:200px;
}
style>
@code{
SfPivotView<ProductDetails>PivotObj;
public List<ProductDetails>Data { get; set; }
static ProductDetails Pivot = new
ProductDetails();
protected override void OnInitialized()
{
this.Data =
Pivot.GetProductData();
}
private
void Engine_Populating(EnginePopulatingEventArgs args)
{
for(var
i = 0; i < args.DataSourceSettings.Values.Count; i++)
{
//here
you can change the aggreagte type based on the value field on selecting value
in value
if
(args.DataSourceSettings.Values[i].Name == "In_Stock")
{
args.DataSourceSettings.Values[i].Type
= SummaryTypes.DistinctCount;
}
if
(args.DataSourceSettings.Values[i].Name == "Amount")
{
args.DataSourceSettings.Values[i].Type
= SummaryTypes.Product;
}
}
}
} |