mirror of
https://github.com/radzenhq/radzen-blazor.git
synced 2026-07-08 18:16:08 +00:00
81 lines
3.7 KiB
Plaintext
81 lines
3.7 KiB
Plaintext
@using RadzenBlazorDemos.Data
|
|
@using RadzenBlazorDemos.Models.Northwind
|
|
@using Microsoft.EntityFrameworkCore
|
|
|
|
@inject NorthwindODataService service
|
|
|
|
|
|
<RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" Gap="0.5rem" class="rz-p-2">
|
|
<RadzenCheckBox @bind-Value="@allowVirtualization" Name="allowVirtualization" />
|
|
<RadzenLabel Text="Allow virtualization" Component="allowVirtualization" />
|
|
</RadzenStack>
|
|
|
|
<RadzenDataList AllowVirtualization=@allowVirtualization Style="@(allowVirtualization ? "height:400px;overflow:auto;" : "")"
|
|
WrapItems="@(!allowVirtualization)" AllowPaging="@(!allowVirtualization)" IsLoading=@isLoading LoadData=@LoadData
|
|
Data="@products" Count=@count TItem="Product" PageSize="5" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true">
|
|
<Template Context="product">
|
|
<RadzenCard Variant="Variant.Outlined" class="rz-p-0" Style="width: 100%; overflow: hidden;">
|
|
<RadzenRow Gap="0">
|
|
<RadzenColumn Size="12" SizeLG="3" class="rz-p-4 product-title">
|
|
<RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-color-on-secondary-lighter">@(product.ProductName)</RadzenText>
|
|
</RadzenColumn>
|
|
<RadzenColumn Size="12" SizeLG="7" class="rz-p-4">
|
|
<RadzenRow Gap="0">
|
|
<RadzenColumn Size="12" SizeMD="6" SizeLG="2">
|
|
<RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">In Stock</RadzenText>
|
|
<RadzenText TextStyle="TextStyle.Body2">@(product.UnitsInStock)</RadzenText>
|
|
</RadzenColumn>
|
|
<RadzenColumn Size="12" SizeMD="6" SizeLG="2">
|
|
<RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">Origin</RadzenText>
|
|
<RadzenText TextStyle="TextStyle.Body2">@(product.Supplier?.Country)</RadzenText>
|
|
</RadzenColumn>
|
|
<RadzenColumn Size="12" SizeMD="6" SizeLG="5">
|
|
<RadzenText TextStyle="TextStyle.H6" TagName="TagName.H5" class="rz-mb-0">Sold by</RadzenText>
|
|
<RadzenText TextStyle="TextStyle.Body2">@(product.Supplier?.CompanyName)</RadzenText>
|
|
</RadzenColumn>
|
|
<RadzenColumn Size="12" SizeMD="6" SizeLG="3" class="rz-text-align-start rz-text-align-lg-end">
|
|
<RadzenBadge BadgeStyle="BadgeStyle.Secondary" Shade="Shade.Lighter" class="price-badge" Text=@($"{String.Format(new System.Globalization.CultureInfo("en-US"), "{0:C}", product.UnitPrice)}") />
|
|
</RadzenColumn>
|
|
</RadzenRow>
|
|
</RadzenColumn>
|
|
<RadzenColumn Size="12" SizeLG="2" class="rz-p-4">
|
|
<RadzenButton Text="Order now" Style="width: 100%" />
|
|
</RadzenColumn>
|
|
</RadzenRow>
|
|
</RadzenCard>
|
|
</Template>
|
|
</RadzenDataList>
|
|
|
|
<style>
|
|
.product-title {
|
|
min-height: 72px;
|
|
background-color: var(--rz-secondary-lighter);
|
|
}
|
|
.price-badge {
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
line-height: 20px;
|
|
padding: 8px;
|
|
}
|
|
</style>
|
|
|
|
@code {
|
|
bool allowVirtualization;
|
|
int count;
|
|
bool isLoading;
|
|
|
|
IEnumerable<Product> products;
|
|
|
|
async Task LoadData(LoadDataArgs args)
|
|
{
|
|
isLoading = true;
|
|
|
|
var result = await service.GetProducts(top: args.Top, skip: args.Skip, count: true);
|
|
// Update the Data property
|
|
products = result.Value.AsODataEnumerable();
|
|
// Update the count
|
|
count = result.Count;
|
|
|
|
isLoading = false;
|
|
}
|
|
} |