mirror of
https://github.com/radzenhq/radzen-blazor.git
synced 2026-07-08 18:16:08 +00:00
SEO: enrich PivotDataGrid cluster (4 pages)
Add GetPivotDataGridPages + a cluster branch in SeoSchema (Home > Pivot DataGrid > variant). Primary title now leads with 'Pivot Table' to capture the larger query; fixed copy-pasted descriptions on the LoadData/OData pages; added FAQ, related links, and keyword intros.
This commit is contained in:
@@ -4,8 +4,7 @@
|
||||
PivotDataGrid <strong>dynamic</strong> data support
|
||||
</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.Subtitle1" TagName="TagName.P" class="rz-pb-4">
|
||||
Schema-less datasets are common when data comes from external APIs. This demo shows how to build a pivot table on top of
|
||||
<code>IDictionary<string, object></code> records without defining C# models.
|
||||
Build a Blazor pivot table over schema-less <code>IDictionary<string, object></code> records from external APIs, configuring pivot fields at runtime without C# models.
|
||||
</RadzenText>
|
||||
|
||||
<RadzenExample ComponentName="PivotDataGrid" Example="PivotDataGridDynamicData">
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
PivotDataGrid <strong>LoadData</strong>
|
||||
</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.Subtitle1" TagName="TagName.P" class="rz-pb-4">
|
||||
The <code>LoadData</code> event allows you to perform custom paging, sorting and filtering.
|
||||
Bind the Blazor Pivot DataGrid to remote data with the <code>LoadData</code> event, fetching aggregated cross-tab results on demand.
|
||||
</RadzenText>
|
||||
|
||||
<RadzenExample ComponentName="PivotDataGrid" Example="PivotDataGridLoadData">
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
PivotDataGrid <strong>OData</strong>
|
||||
</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.Subtitle1" TagName="TagName.P" class="rz-pb-4">
|
||||
Use the <code>LoadData</code> event to get data from a REST service.
|
||||
Bind the Blazor Pivot DataGrid to an OData service and build cross-tabulation reports from the remote query.
|
||||
</RadzenText>
|
||||
|
||||
<RadzenExample ComponentName="PivotDataGrid" Example="PivotDataGridOData" AdditionalSourceCodePages=@(new[] { "PivotDataGridODataAggregateValue.razor" })>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
Blazor PivotDataGrid
|
||||
</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.Subtitle1" TagName="TagName.P" class="rz-pb-4">
|
||||
Create cross-tabulation tables for analyzing large datasets with aggregation, drill-down, and grouping.
|
||||
The Blazor Pivot DataGrid builds cross-tabulation reports - rows, columns, and aggregated values - from your data, with drill-down and grouping.
|
||||
</RadzenText>
|
||||
<RadzenText TextStyle="TextStyle.Body2" class="rz-my-6">
|
||||
This example demonstrates full pivot table functionality with columns, rows, and aggregates.
|
||||
|
||||
@@ -1578,33 +1578,54 @@ namespace RadzenBlazorDemos
|
||||
{
|
||||
Name = "IQueryable",
|
||||
Path = "/pivot-data-grid",
|
||||
Title = "Blazor Pivot DataGrid - IQueryable | Free UI Components by Radzen",
|
||||
Description = "The RadzenPivotDataGrid component allows you to create cross-tabulation aggregates from IQueryable.",
|
||||
Tags = new [] { "pivot", "crosstab", "analysis", "aggregation", "drill-down", "datagrid", "table", "query", "IQueryable" }
|
||||
Title = "Blazor Pivot Table - Pivot DataGrid (IQueryable) | Free UI Components by Radzen",
|
||||
Description = "The Blazor Pivot DataGrid (RadzenPivotDataGrid) creates cross-tabulation reports - rows, columns, and aggregated values - from an IQueryable data source.",
|
||||
Tags = new [] { "pivot", "pivot table", "crosstab", "analysis", "aggregation", "drill-down", "datagrid", "table", "query", "IQueryable" },
|
||||
Related = new [] { "pivot-data-grid-load-data", "pivot-data-grid-dynamic", "pivot-data-grid-odata", "datagrid" },
|
||||
Faq = new []
|
||||
{
|
||||
new FaqItem { Question = "What is the Blazor Pivot DataGrid?", Answer = "It is a pivot table (cross-tab) component that groups data into rows and columns and shows aggregated values, with drill-down." },
|
||||
new FaqItem { Question = "How do I bind the Pivot DataGrid to data?", Answer = "Set Data to an IQueryable (or use the LoadData event for remote data) and define the row, column, and value fields to aggregate." }
|
||||
}
|
||||
},
|
||||
new Example
|
||||
{
|
||||
Name = "LoadData",
|
||||
Path = "/pivot-data-grid-load-data",
|
||||
Title = "Blazor Pivot DataGrid - LoadData Binding | Free UI Components by Radzen",
|
||||
Description = "The RadzenPivotDataGrid component allows you to create cross-tabulation aggregates from IQueryable.",
|
||||
Tags = new [] { "pivot", "crosstab", "analysis", "aggregation", "drill-down", "datagrid", "table", "query", "IQueryable" }
|
||||
Description = "Bind the Blazor Pivot DataGrid to remote data with the LoadData event, fetching aggregated cross-tab results on demand.",
|
||||
Tags = new [] { "pivot", "crosstab", "analysis", "aggregation", "drill-down", "datagrid", "table", "loaddata", "remote" },
|
||||
Related = new [] { "pivot-data-grid", "pivot-data-grid-odata", "datagrid-loaddata" },
|
||||
Faq = new []
|
||||
{
|
||||
new FaqItem { Question = "How do I load Pivot DataGrid data on demand?", Answer = "Handle the LoadData event to fetch and aggregate data from the server as the grid needs it." }
|
||||
}
|
||||
},
|
||||
new Example
|
||||
{
|
||||
Name = "Dynamic data",
|
||||
Path = "/pivot-data-grid-dynamic",
|
||||
Title = "Blazor Pivot DataGrid - Dynamic Data | Free UI Components by Radzen",
|
||||
Description = "Bind RadzenPivotDataGrid to schema-less IDictionary<string, object> records and configure fields dynamically.",
|
||||
Tags = new [] { "pivot", "dynamic", "dictionary", "analysis", "aggregation", "drill-down", "datagrid", "table" }
|
||||
Description = "Bind the Blazor Pivot DataGrid to schema-less IDictionary<string, object> records and configure pivot fields dynamically.",
|
||||
Tags = new [] { "pivot", "dynamic", "dictionary", "analysis", "aggregation", "drill-down", "datagrid", "table" },
|
||||
Related = new [] { "pivot-data-grid", "pivot-data-grid-load-data", "datagrid-dynamic" },
|
||||
Faq = new []
|
||||
{
|
||||
new FaqItem { Question = "How do I bind the Pivot DataGrid to dynamic data?", Answer = "Bind Data to records of IDictionary<string, object> and configure the row, column, and value fields at runtime, without a fixed model." }
|
||||
}
|
||||
},
|
||||
new Example
|
||||
{
|
||||
Name = "OData",
|
||||
Path = "/pivot-data-grid-odata",
|
||||
Title = "Blazor Pivot DataGrid - OData Binding | Free UI Components by Radzen",
|
||||
Description = "The RadzenPivotDataGrid component allows you to create cross-tabulation aggregates from IQueryable.",
|
||||
Tags = new [] { "odata", "pivot", "crosstab", "analysis", "aggregation", "drill-down", "datagrid", "table", "query", "IQueryable" }
|
||||
Description = "Bind the Blazor Pivot DataGrid to an OData service and build cross-tabulation reports from the remote query.",
|
||||
Tags = new [] { "odata", "pivot", "crosstab", "analysis", "aggregation", "drill-down", "datagrid", "table", "query", "remote" },
|
||||
Related = new [] { "pivot-data-grid", "pivot-data-grid-load-data", "datagrid-odata" },
|
||||
Faq = new []
|
||||
{
|
||||
new FaqItem { Question = "How do I bind the Pivot DataGrid to OData?", Answer = "Point the grid at an OData endpoint via the LoadData event; it builds the cross-tabulation from the remote query results." }
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -4470,6 +4491,13 @@ namespace RadzenBlazorDemos
|
||||
return dataGrid?.Children != null ? CollectLeaves(dataGrid.Children).ToList() : Enumerable.Empty<Example>();
|
||||
}
|
||||
|
||||
// Every leaf page under the "PivotDataGrid" category. Article-eligible for schema.
|
||||
public IEnumerable<Example> GetPivotDataGridPages()
|
||||
{
|
||||
var pivot = Examples.FirstOrDefault(c => c.Name == "PivotDataGrid");
|
||||
return pivot?.Children != null ? CollectLeaves(pivot.Children).ToList() : Enumerable.Empty<Example>();
|
||||
}
|
||||
|
||||
// Maps each Forms page path to its component hub (display label + primary page path). Unlike
|
||||
// charts or DataGrid, Forms has no single landing page; every component (DropDown, Button, ...)
|
||||
// is its own hub. Single-page components hub on themselves; grouped ones (DropDown, HtmlEditor)
|
||||
|
||||
@@ -79,6 +79,11 @@ namespace RadzenBlazorDemos
|
||||
return ArticleGraph(example, url, exampleService, "DataGrid", "datagrid");
|
||||
}
|
||||
|
||||
if (InCluster(exampleService.GetPivotDataGridPages(), path))
|
||||
{
|
||||
return ArticleGraph(example, url, exampleService, "Pivot DataGrid", "pivot-data-grid");
|
||||
}
|
||||
|
||||
// Forms has no single hub; each component is its own breadcrumb root.
|
||||
if (path != null && exampleService.GetFormsComponentHubs().TryGetValue(path, out var formsHub))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user