Skip to content

Blazor Grid Examples with Multi-Project Architecture and Angular-Style Navigation#1

Draft
Copilot wants to merge 11 commits intomasterfrom
copilot/add-blazor-grid-examples
Draft

Blazor Grid Examples with Multi-Project Architecture and Angular-Style Navigation#1
Copilot wants to merge 11 commits intomasterfrom
copilot/add-blazor-grid-examples

Conversation

Copy link

Copilot AI commented Feb 6, 2026

Implementation Summary: Multi-Project Architecture with IgbGrid Components

Successfully restructured the repository into a multi-project solution with separate standalone sample projects and a main navigation application featuring horizontal tabs matching the Angular grid examples.

Architecture Changes ✅

Multi-Project Solution:

  • ✅ Created solution file with proper project structure
  • ✅ Main navigation application at src/BlazorGridExamples (Port 5000)
  • ✅ 5 standalone sample projects in src/samples/ (Ports 5001-5005)
    • FinanceGrid - Fully implemented with IgbGrid
    • SalesGrid - Project template created
    • HRPortal - Project template created
    • ERPInventory - Project template created
    • FleetManagement - Project template created

Navigation Application Features:

  • ✅ Horizontal tab navigation matching Angular grid examples UI
  • ✅ Sample info bar with title, description, and action buttons
  • ✅ Download button (placeholder for downloading individual samples)
  • ✅ View More and Fullscreen toggle buttons
  • ✅ Theme/Mode display (Bootstrap Light)
  • ✅ iframe-based hosting for embedding sample applications
  • ✅ Landing page with card-based sample discovery

FinanceGrid Sample (Complete):

  • ✅ Standalone Blazor Server project with IgbGrid component
  • ✅ Added IgniteUI.Blazor.Trial NuGet package (v25.2.38)
  • ✅ Configured 8 columns with proper data binding
  • ✅ Fixed theme import path to _content/IgniteUI.Blazor/themes/grid/light/bootstrap.css
  • ✅ Live data updates every 3 seconds
  • ✅ Can run independently or embedded via navigation
  • ✅ Removed all web components dependencies (igniteui-webcomponents)

Repository Structure

blazor-grid-examples/
├── BlazorGridExamples.slnx
├── src/
│   ├── BlazorGridExamples/              # Main navigation (Port 5000)
│   │   ├── Components/
│   │   │   ├── Layout/
│   │   │   │   ├── TabNavigation.razor
│   │   │   │   └── TabNavigation.razor.css
│   │   │   └── Pages/
│   │   │       └── Home.razor
│   │   └── Properties/launchSettings.json
│   └── samples/
│       ├── FinanceGrid/                 # Port 5001 (Complete)
│       ├── SalesGrid/                   # Port 5002
│       ├── HRPortal/                    # Port 5003
│       ├── ERPInventory/                # Port 5004
│       └── FleetManagement/             # Port 5005
└── README.md

Grid Configuration

<link href="_content/IgniteUI.Blazor/themes/grid/light/bootstrap.css" rel="stylesheet" />
<script src="_content/IgniteUI.Blazor/app.bundle.js"></script>
<IgbGrid Data="FinancialService.Data" 
         AutoGenerate="false"
         AllowFiltering="true"
         Height="calc(100vh - 200px)"
         @ref="grid">
    <IgbColumn Field="Id" Header="Symbol" Width="7%" MinWidth="68px"></IgbColumn>
    <!-- 7 more columns... -->
</IgbGrid>

Screenshots

Before (No Theme):

After (With IgniteUI Grid Theme):

Features

Navigation:

  • ✅ Horizontal tab bar with active highlighting
  • ✅ Sample info bar matching Angular examples
  • ✅ Responsive layout and smooth transitions
  • ✅ iframe embedding for seamless integration
  • ✅ Individual sample discovery via landing page

FinanceGrid:

  • ✅ Grid properly styled with IgniteUI Bootstrap theme
  • ✅ Column headers with filter icons
  • ✅ Filtering enabled (click filter icon in headers)
  • ✅ Sortable columns
  • ✅ Responsive layout
  • ✅ Live data updates every 3 seconds
  • ✅ Trial watermark overlay (as expected with trial package)

Running the Application

All samples with navigation:

# Terminal 1 - Main Navigation
cd src/BlazorGridExamples && dotnet run

# Terminal 2 - Finance Grid
cd src/samples/FinanceGrid && dotnet run

Individual sample:

cd src/samples/FinanceGrid
dotnet run
# Opens at http://localhost:5001

Benefits

Individual Downloads: Structure ready for project zipping and downloading
Independent Running: Each sample runs on its own port and operates standalone
Easy Maintenance: Update samples without affecting others
Scalable: Easy to add new samples following established patterns
Matches Angular Structure: Same UX and navigation pattern as angular-grid-examples

Technical Notes

The IgniteUI.Blazor.Trial package uses IgniteUI.Blazor as its BasePath for static web assets, not IgniteUI.Blazor.Trial. This is defined in the package's static web assets manifest.

Static Asset Mapping:

  • Package: IgniteUI.Blazor.Trial
  • BasePath: _content/IgniteUI.Blazor (without .Trial suffix)
  • Theme: themes/grid/light/bootstrap.css for grid-specific styling

Note

Using IgniteUI.Blazor.Trial package which includes trial watermark overlay. Commercial license required for production use.

Original prompt

I'd like to create a Blazor Grid Examples based on angular grid samples https://github.com/IgniteUI/angular-grid-examples. I'd like those samples to look and feel the same as in angular, but to use IgbGrid instead of igx-grid.(Also apply this to pivot-grid, tree-grid, hierarchical-grid)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 5 commits February 6, 2026 09:15
Co-authored-by: dkamburov <1182001+dkamburov@users.noreply.github.com>
Co-authored-by: dkamburov <1182001+dkamburov@users.noreply.github.com>
Co-authored-by: dkamburov <1182001+dkamburov@users.noreply.github.com>
Co-authored-by: dkamburov <1182001+dkamburov@users.noreply.github.com>
…ed code

Co-authored-by: dkamburov <1182001+dkamburov@users.noreply.github.com>
Copilot AI changed the title [WIP] Add Blazor Grid examples based on Angular samples Initial Blazor Grid Examples with Financial Portfolio implementation Feb 6, 2026
Copilot AI requested a review from dkamburov February 6, 2026 09:29
@dkamburov
Copy link
Collaborator

  • @copilot don't create custom table with tbody and cells. Instead use IgbGrid component from IgniteIU.Blazor/IgniteUI.Blazor.Trial nuget package. Also I want to look exactly the same as angular grid demos and no need for those references:
  • igniteui-webcomponents 6.5.1
  • igniteui-webcomponents-grids 6.2.2
    Remove them from the project.

…kage

Co-authored-by: dkamburov <1182001+dkamburov@users.noreply.github.com>
Copy link
Author

Copilot AI commented Feb 6, 2026

  • @copilot don't create custom table with tbody and cells. Instead use IgbGrid component from IgniteIU.Blazor/IgniteUI.Blazor.Trial nuget package. Also I want to look exactly the same as angular grid ...

Replaced the custom HTML table with IgbGrid component from IgniteUI.Blazor.Trial NuGet package (v25.2.38). Also removed all web components dependencies (igniteui-webcomponents and igniteui-webcomponents-grids) from the project.

Changes in commit 084101e:

  • Added IgniteUI.Blazor.Trial NuGet package
  • Configured IgbGrid with proper columns and data binding
  • Removed package.json and all npm dependencies
  • Removed wwwroot/lib/igniteui-webcomponents directories
  • Grid now updates with live data every 3 seconds

Finance Grid with IgbGrid

Co-authored-by: dkamburov <1182001+dkamburov@users.noreply.github.com>
Copilot AI changed the title Initial Blazor Grid Examples with Financial Portfolio implementation Blazor Grid Examples with IgbGrid Component Implementation Feb 6, 2026
@dkamburov
Copy link
Collaborator

@copilot seems that you haven't imported the theme for the grid

…lazor

Co-authored-by: dkamburov <1182001+dkamburov@users.noreply.github.com>
Copy link
Author

Copilot AI commented Feb 6, 2026

@copilot seems that you haven't imported the theme for the grid

Fixed in commit 86e24d2. The issue was that the static assets path needed to be _content/IgniteUI.Blazor/ (without .Trial suffix) instead of _content/IgniteUI.Blazor.Trial/. Also switched to the grid-specific theme at themes/grid/light/bootstrap.css.

The grid now displays with proper IgniteUI styling including column headers, filter icons, and proper table formatting.

Grid with theme

@dkamburov
Copy link
Collaborator

@copilot The current structure doesn’t match my expectations. I’d like to reorganize it into five separate projects, with one dedicated project per sample. This will allow me to add a Download button for each sample so users can download them individually.

Additionally, I want the navigation header to be exactly the same as the one used in angular-grids-examples. It should also support navigation between the different sample projects, so users can easily switch between them.

Please suggest how to restructure the solution to meet these requirements.

Copy link
Author

Copilot AI commented Feb 9, 2026

@copilot The current structure doesn’t match my expectations. I’d like to reorganize it into five separate projects, with one dedicated project per sample. This will allow me to add a Download but...

I'll restructure the solution to match the Angular examples pattern. Here's the proposed structure:

Proposed Solution Structure

blazor-grid-examples/
├── blazor-grid-examples.sln
├── src/
│   ├── BlazorGridExamples/              # Main landing/navigation project
│   │   ├── Program.cs
│   │   ├── Components/
│   │   │   ├── App.razor
│   │   │   ├── Layout/
│   │   │   │   └── TabNavigation.razor  # Horizontal tab navigation
│   │   │   └── Pages/
│   │   │       └── Index.razor          # Landing page with iframes
│   │   └── wwwroot/
│   ├── samples/
│   │   ├── FinanceGrid/                 # Standalone project
│   │   │   ├── Program.cs
│   │   │   ├── FinanceGrid.csproj
│   │   │   ├── Components/
│   │   │   ├── Models/
│   │   │   ├── Services/
│   │   │   └── wwwroot/
│   │   ├── SalesGrid/                   # Standalone project
│   │   ├── HRPortal/                    # Standalone project
│   │   ├── ERPInventory/                # Standalone project
│   │   └── FleetManagement/             # Standalone project
│   └── shared/
│       └── BlazorGridExamples.Shared/   # Shared components/models
│           └── BlazorGridExamples.Shared.csproj
└── README.md

Key Features

1. Separate Standalone Projects

  • Each sample is an independent Blazor Server project
  • Can be downloaded/run individually
  • Own dependencies, models, services, and data

2. Main Navigation Project

  • Hosts all samples via iframes OR reverse proxy
  • Horizontal tab navigation matching Angular examples
  • Download button for each sample (downloads project as .zip)
  • Theme/Mode switcher
  • Fullscreen toggle

3. Shared Library

  • Common navigation components
  • Shared data models (if any)
  • Common utilities

Navigation Header (Matching Angular)

<!-- Horizontal tab bar at top -->
<div class="tab-container">
    <div class="tab-item @(activeTab == "finance-grid" ? "tab-item--selected" : "")">
        <a href="/finance-grid">FINANCIAL PORTFOLIO</a>
    </div>
    <div class="tab-item @(activeTab == "sales-grid" ? "tab-item--selected" : "")">
        <a href="/sales-grid">SALES DASHBOARD</a>
    </div>
    <!-- More tabs... -->
</div>

<!-- Sample info bar with Download button -->
<div class="current-tab-info">
    <div class="sample-info">
        <div class="tab-header">@currentSample.Title</div>
        <div class="tab-description">@currentSample.Description</div>
    </div>
    <div class="sample-actions">
        <button onclick="downloadSample('@currentSample.Name')">
            Download
        </button>
        <!-- More buttons... -->
    </div>
</div>

Benefits

Individual Downloads: Each project can be zipped and downloaded separately
Independent Running: Each sample runs on its own port
Easy Maintenance: Update one sample without affecting others
Scalable: Easy to add new samples
Matches Angular Structure: Same UX as angular-grid-examples

Should I proceed with this restructuring?

@dkamburov
Copy link
Collaborator

dkamburov commented Feb 9, 2026

@copilot yes, go ahead.

Copilot AI and others added 2 commits February 9, 2026 08:19
…tructure and FinanceGrid sample

Co-authored-by: dkamburov <1182001+dkamburov@users.noreply.github.com>
Co-authored-by: dkamburov <1182001+dkamburov@users.noreply.github.com>
Copy link
Author

Copilot AI commented Feb 9, 2026

@copilot yes, go ahed.

Restructuring complete! The solution now has 5 separate sample projects with a main navigation application featuring horizontal tabs matching the Angular examples.

Implemented in commits 3d9cc99 and a45811b:

Multi-Project Structure

  • Main navigation app at src/BlazorGridExamples (Port 5000)
  • 5 standalone sample projects in src/samples/ (Ports 5001-5005)
  • Each sample can be downloaded/run independently

Navigation Features

  • Horizontal tab bar matching Angular UI
  • Sample info bar with Download, View More, and Fullscreen buttons
  • iframe hosting for seamless sample embedding
  • Landing page with cards for all samples

FinanceGrid Sample

To run:

# Main navigation
cd src/BlazorGridExamples && dotnet run

# Finance Grid sample  
cd src/samples/FinanceGrid && dotnet run

See updated README for full instructions. Ready to implement remaining samples following the same pattern.

Copilot AI changed the title Blazor Grid Examples with IgbGrid Component Implementation Blazor Grid Examples with Multi-Project Architecture and Angular-Style Navigation Feb 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants