SiChuanShengErZhong_JiaoJie/MasaBlazorApp3/Pages/Demo.razor

78 lines
2.2 KiB
Plaintext

@page "/Box/CheckDDD"
@using Radzen.Blazor
@using System.ComponentModel
<style>
.total-footer {
font-weight: 600;
color: var(--rz-secondary);
padding: 8px 12px;
background-color: var(--rz-base-100);
border-top: 2px solid var(--rz-border-default);
}
</style>
@* <RadzenDataGrid @ref="grid" Data="@summaryData" TItem="dynamic"
AllowPaging="true" PageSize="5">
<Columns>
<RadzenDataGridColumn Title="商品品类" Property="Category" Width="200px" />
<RadzenDataGridColumn Title="销售总量" TextAlign="TextAlign.Right">
<Template Context="group">
<span class="font-bold">@group.TotalQuantity.ToString("N0")</span>
</Template>
<FooterTemplate>
<div class="total-footer">
全品类合计: @orders.Sum(o => o.Quantity).ToString("N0")
</div>
</FooterTemplate>
</RadzenDataGridColumn>
</Columns>
</RadzenDataGrid> *@
@code {
RadzenDataGrid<dynamic> grid;
List<Order> orders = new();
IEnumerable<dynamic> summaryData;
protected override void OnInitialized()
{
// 模拟数据
orders = new List<Order> {
new Order { Category = "电子产品", Quantity = 15 },
new Order { Category = "电子产品", Quantity = 8 },
new Order { Category = "家居用品", Quantity = 23 }
};
CalculateSummary();
}
void CalculateSummary()
{
summaryData = orders
.GroupBy(o => o.Category)
.Select(g => new
{
Category = g.Key,
TotalQuantity = g.Sum(x => x.Quantity)
}).ToList();
}
public class Order : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public string Category { get; set; }
private int _quantity;
public int Quantity
{
get => _quantity;
set
{
_quantity = value;
PropertyChanged?.Invoke(this,
new PropertyChangedEventArgs(nameof(Quantity)));
}
}
}
}