Skip to content

MS_Grid

nishi_74322014 edited this page Sep 1, 2026 · 1 revision

Grid

概要

...。

移行メモ(原文には「戻る」がない): 移行元のページには
戻り先の記載がなかったため、
内容の位置付けから その他、開発の色々 を補った。

補足(本ページはハブである): 原文は概要が空欄で、
2 つの子ページへのリンクだけを持つ
ここでは「Grid(表形式の UI)」について、
本 Wiki 内での位置付けを補っておく。

【本 Wiki で Grid を扱っているページ】

  Grid(本ページ)
    ├ Gridのヘッダ固定方法       … スクロールしてもヘッダを残す
    └ GridViewとjQGrid          … サーバ側 vs クライアント側

  関連:
    ASP.NET MVCのWebGrid        … MVC 向けの表ヘルパー(廃れた)
    ASP.NET MVCでDataTableを使用する。 … DataTable を表にする

補足(Grid をどう実現するかの選択肢): 「一覧表を作る」という
要件は業務システムで最も頻出であり、選択肢が世代ごとに変わってきた

世代 手段 性質
Web Forms <asp:GridView> サーバ側で HTML を生成。ポストバックで並べ替え・ページング
MVC WebGrid / 素の foreach ASP.NET MVCのWebGrid
jQuery 期 jqGrid、DataTables.js クライアント側で並べ替え・検索
SPA 期 AG Grid、TanStack Table、MUI DataGrid 仮想スクロール、列固定、編集
Blazor QuickGrid、Radzen、Syncfusion C# で書ける
デスクトップ DataGridViewWindows Forms)、DataGridWPF

**選定で効く軸は「どこでページングするか」**である。

【クライアント側ページング】
   全件をブラウザに送り、JS が切り分けて表示する
     ○ 並べ替え・検索が速い(サーバに行かない)
     ✗ 【件数が増えると破綻する】(数千件で重くなる)
     ✗ 全件を送る= 見せてはいけない行まで送る危険 ★

【サーバ側ページング】
   表示する 20 件だけを DB から取る
     ○ 件数に依存しない
     ○ 認可を DB クエリで効かせられる
     ✗ 並べ替え・ページ移動のたびに往復する

 → 【業務システムは原則サーバ側ページング】
   ([ASP.NET MVCでDataTableを使用する。] でも同じ結論)
-- SQL Server でのページング(2012 以降)
SELECT ... FROM 明細
ORDER BY 伝票番号
OFFSET @skip ROWS FETCH NEXT @take ROWS ONLY;

件数取得(COUNT(*))が重くなりがちな点にも注意する。
総ページ数の表示をやめ、
**「次へ」だけにする(カーソル ページング)**と
大規模データでも安定する。

参考

Microsoft Learn


Tags: 移行, その他、開発の色々

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally