Skip to content

Add QuickGrid in .NET 11: Sorting and Paging That Live in the URL article - #26214

Merged
enisn merged 6 commits into
devfrom
article/quickgrid-url-state-static-ssr
Sep 29, 2026
Merged

enisn merged 6 commits into
devfrom
article/quickgrid-url-state-static-ssr

Conversation

@salihozkara

Copy link
Copy Markdown
Member

No description provided.

@salihozkara
salihozkara requested review from enisn and a balanced review from Copilot September 29, 2026 07:30
@github-actions

Copy link
Copy Markdown
Contributor

Images automagically compressed by Calibre's image-actions ✨

Compression reduced images by 75.6%, saving 498.7 KB.

Filename Before After Improvement Visual comparison
docs/en/Community-Articles/2026-09-23-quickgrid-url-state-static-ssr/cover.png 289.7 KB 38.3 KB 86.8% View diff
docs/en/Community-Articles/2026-09-23-quickgrid-url-state-static-ssr/images/screenshot-filtered.png 92.0 KB 30.4 KB 66.9% View diff
docs/en/Community-Articles/2026-09-23-quickgrid-url-state-static-ssr/images/screenshot-sorted-paged.png 90.9 KB 29.8 KB 67.2% View diff
docs/en/Community-Articles/2026-09-23-quickgrid-url-state-static-ssr/images/screenshot-multi-grid.png 76.4 KB 24.8 KB 67.5% View diff
docs/en/Community-Articles/2026-09-23-quickgrid-url-state-static-ssr/images/url-state-loop.png 64.6 KB 22.2 KB 65.6% View diff
docs/en/Community-Articles/2026-09-23-quickgrid-url-state-static-ssr/images/url-anatomy.png 46.2 KB 15.5 KB 66.5% View diff

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Several accessibility, lifecycle, and documentation claims are inaccurate or contradictory.

Review effort: Balanced
Findings: 2 Medium severity · 3 Low severity

Open (5)
What changed in this PR

Adds a Community Article explaining .NET 11 RC1 QuickGrid URL-based sorting and pagination.

Changes:

  • Documents static SSR, multi-grid, provider, accessibility, and compatibility behavior.
  • Adds a concise article summary.
File Description
post.md Full QuickGrid URL-state article and samples.
summary.md Article listing summary.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.


- **`<a>` vs `<button>`.** Sort headers are true links now (they navigate), which is the right element for the job — screen readers announce "link", and open-in-new-tab works. Disabled paginator links carry `aria-disabled="true"` and `tabindex="-1"`.
- **`aria-sort`** shows up on the sorted `<th>` (`ascending`/`descending`, `none` elsewhere) and `scope="col"` on all headers — table semantics are intact.
- **Focus.** The template's `FocusOnNavigate` moves focus to `h1` on navigation, which keeps enhanced-nav clicks sane for keyboard users.
- **Go-live, not GA.** RC1 is production-supported under Microsoft's go-live license (window ends October 13, 2026 — plan to move to RC2/GA). .NET 11 is an **STS** release (support through November 9, 2028); .NET 10 remains **LTS** (November 14, 2028). The support windows end in the same month, so choose on features and risk, not longevity.
- **Duplicate provider calls on `?page=` requests** ([observed above](#server-side-paging-with-griditemsprovider)) — budget for it or use `Items` for small tables. See also [dotnet/aspnetcore#69381](https://github.com/dotnet/aspnetcore/issues/69381).
- **Markup breaking change.** `button.col-title` → `a.col-title` and paginator `button` → `a`. CSS selectors and Playwright/Selenium locators targeting `button` need updating; `aria-disabled` replaces `:disabled` for the disabled paginator state.
- **`Paginator.OnParametersSet` → `OnParametersSetAsync`.** Binary-compatible but behaviorally breaking for `Paginator` subclasses that overrode the sync method — they silently stop being called.

- **Static SSR works.** Sorting and paging are functional on pages with no interactivity at all — headers and the paginator are `<a>` links carrying `sort`, `direction`, and `page` query parameters.
- **The URL is the state store.** Refresh, Back/Forward, bookmarks, and "copy link" all preserve the grid state because the state is the address.
- **Your own parameters coexist.** A `[SupplyParameterFromQuery]` filter like `?country=Germany` is preserved inside QuickGrid's generated links, and vice versa.

## The sample app

The sample is a Blazor Web App with **no interactivity on its pages** — the scenario that was impossible before .NET 11:
string Sort, Direction, Page // settable
```

> **Docs lag the RC1 rename.** The QuickGrid docs page and several preview-era blog posts still show `QueryParameterNamePrefix` and `?order=`. On RC1 that parameter doesn't exist and `order` is ignored — use `QueryParameterNameOptions` and `direction`.
@enisn

enisn commented Sep 29, 2026

Copy link
Copy Markdown
Member

@salihozkara can you check once copilot findings? Later I'll review

@github-actions

Copy link
Copy Markdown
Contributor

Images automagically compressed by Calibre's image-actions ✨

Compression reduced images by 8.2%, saving 10.0 KB.

Filename Before After Improvement Visual comparison
docs/en/Community-Articles/2026-09-23-quickgrid-url-state-static-ssr/images/screenshot-filtered.png 30.4 KB 27.7 KB 8.9% View diff
docs/en/Community-Articles/2026-09-23-quickgrid-url-state-static-ssr/images/screenshot-sorted-paged.png 29.8 KB 27.7 KB 7.1% View diff
docs/en/Community-Articles/2026-09-23-quickgrid-url-state-static-ssr/images/url-state-loop.png 22.2 KB 20.4 KB 8.3% View diff
docs/en/Community-Articles/2026-09-23-quickgrid-url-state-static-ssr/images/url-anatomy.png 15.5 KB 13.8 KB 11.1% View diff
docs/en/Community-Articles/2026-09-23-quickgrid-url-state-static-ssr/images/screenshot-multi-grid.png 24.8 KB 23.1 KB 6.7% View diff

1 image did not require optimisation.

@github-actions

Copy link
Copy Markdown
Contributor

Images automagically compressed by Calibre's image-actions ✨

Compression reduced images by 7%, saving 5.5 KB.

Filename Before After Improvement Visual comparison
docs/en/Community-Articles/2026-09-23-quickgrid-url-state-static-ssr/images/screenshot-multi-grid.png 23.1 KB 20.8 KB 9.9% View diff
docs/en/Community-Articles/2026-09-23-quickgrid-url-state-static-ssr/images/screenshot-sorted-paged.png 27.7 KB 26.1 KB 5.9% View diff
docs/en/Community-Articles/2026-09-23-quickgrid-url-state-static-ssr/images/screenshot-filtered.png 27.7 KB 26.1 KB 5.6% View diff

3 images did not require optimisation.

@enisn
enisn merged commit fb07937 into dev Sep 29, 2026
3 checks passed
@enisn
enisn deleted the article/quickgrid-url-state-static-ssr branch September 29, 2026 11:46
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.

3 participants