The road to C# master trapemiya

C#を中心に、.NETの話題を取り上げます。

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  255  : 記事  1  : コメント  622  : トラックバック  30

ニュース

Since 2005年10月26日

わんくま同盟

わんくま同盟

Microsoft MVP


Visual Developer - Visual C#

記事カテゴリ

書庫

日記カテゴリ

naoki0311さんとこのブログ「なお記」で、

Repeaterコントロールを使う上での注意点
http://d.hatena.ne.jp/naoki0311/20051122/1132628464

を見て、前にGDNJに投稿した記事を思い出しました。
書庫としてこちらにも載っけておきます。

DataGrid DataList Repeater の違い
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=30681

まず、これら3つのコントロールなどWebサーバーコントロールは、最終的にブラウザで表示されるために、HTMLに変換されることに注意を払ってください。つまり、これら3つのコントロールはHTML生成器なのです。そして、一般的に、これらのHTMLは単に表示するためだけのものではなく、サーバーとの間でやり取りをする仕組みも生成されて含まれます。

ちょっと例が悪いかもしれませんが、ご飯を炊くことを考えて見ましょう。簡単に手間をかけずに炊きたいのなら、電子炊飯器を使うと思います。しかし、簡単ですが、メーカーによってプログラムされた結果のご飯が炊けます。
これが嫌な場合、ある程度自分で炊き具合を変えられる炊飯器を探すことになるでしょう。自由度は広がりますが、最初の炊飯器よりは手間がかかります。スイッチポンというわけにはいきません。
これでも嫌な場合は、自分で鍋で炊いてくださいということになります。(^^; 自分の思うとおりにできますが、手間も技術もかかります。

もう、おわかりかと思いますが、上からDataGrid、DataList、Repeaterの例えで書いています。

1.DataGrid

データの表示、更新、削除などを簡単なコードで実現することができます。また、ページングやソートなどもサポートしていますので、簡単に実現することができます。その代わり、表示に関する制限は多く、複雑な表現が苦手です。
できるだけプログラマに手間をかけさせずに表示や機能を実現しようとすれば、ある程度表示結果を固定しなければならないのでしょう。

2.DataList

DataGridでは実現できない表示が可能です。特筆すべき点として、DataListはレコードを複数列に表示できます。つまり、横方向にデータを表示できます。表現の自由度が上がった代償として、DataGridと同じ機能を持たせようとすれば、多くのコーディングを要します。

3.Repeater

データを単に反復表示するだけです。何も指定しなければ、HTMLエレメントは一切出力されません。そのため、表現や機能を一番自由にコントロールできますが、その分、技術やコーディングを必要とします。

以上より一般的には次のように言えると思います。
通常はDataGridを用い、それでは表現できないような場合にDataListを検討し、もっと自由な表現を得たい時にはRepeaterを使うような感じになると思います。
コーディング量や技術を要するのは、一般的に、
DataGrid < DataList < Repeater の順になります。
また、パフォーマンスの良さも一般的に、
DataGrid < DataList < Repeater の順になります。

最終的には、求められる要件、開発工数、パフォーマンスなどを考慮して、これら3つのうちのどれを使うかを決定することになるでしょう。


ASP.NET 2.0ですと、この辺りが参考になると思います。

ASP.NET 2.0 FormView コントロール
http://www.exconn.net/Blogs/team03/archive/2005/03/29/313.aspx

Re: FormViewにDataSourceIDに定義されていないテーブルを更新する方法
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=35941

投稿日時 : 2005年11月23日 11:29

コメント

# re: DataGrid DataList Repeater の違い 2005/11/23 12:13 ナオキ
ワザワザありがとうございました('∇')
光栄ですー!!!

# re: DataGrid DataList Repeater の違い 2005/11/23 13:24 trapemiya
すみません。ブログのタイトル間違えてました。変換ミスってやつです。修正しておきました。m(_ _)m

Post Feedback

タイトル
名前
Url:
コメント